@font-face {
  font-family: Manrope;
  src: url(./manrope-medium.ttf) format("truetype");
  font-weight: 400 500;
  font-display: swap;
}
@font-face {
  font-family: Manrope;
  src: url(./manrope-bold.ttf) format("truetype");
  font-weight: 600 800;
  font-display: swap;
}
@font-face {
  font-family: DM Sans;
  src: url(./dm-sans.ttf) format("truetype");
  font-weight: 400 700;
  font-display: swap;
}
:root {
  --bg:#101112;
  --panel:#18191b;
  --ink:#eeeDE8;
  --muted:#a1a1a5;
  --accent:#b7a8f0;
  --line:#ffffff20;
  --pad:clamp(24px,4.7vw,84px);
  color-scheme: dark;
  font-family: "DM Sans", sans-serif;
  background: var(--bg);
  color: var(--ink);
}
* {
  box-sizing: border-box;
}
html {
  scroll-behavior: smooth;
  scroll-padding-top: 105px;
}
body {
  margin: 0;
}
a {
  color: inherit;
  text-decoration: none;
}
button,
input,
textarea,
select {
  font: inherit;
}
button,
a {
  -webkit-tap-highlight-color: transparent;
}
button {
  cursor: pointer;
}
button:disabled {
  cursor: default;
}
::selection {
  background: #b7a8f0;
  color: #111;
}
a:focus-visible,
button:focus-visible,
summary:focus-visible,
input:focus-visible,
textarea:focus-visible,
select:focus-visible {
  outline: 2px solid var(--accent);
  outline-offset: 6px;
}
p {
  line-height: 1.6;
}
h1,
h2,
h3,
p {
  margin-top: 0;
}
h1,
h2,
h3 {
  font-family: Manrope, sans-serif;
  font-weight: 500;
}
img {
  display: block;
  max-width: 100%;
}
.skip-link {
  position: fixed;
  z-index: 100;
  top: 12px;
  left: 12px;
  background: var(--ink);
  color: var(--bg);
  padding: 15px;
  transform: translateY(-200%);
}
.skip-link:focus {
  transform: none;
}
.site-header {
  height: 104px;
  padding: 0 var(--pad);
  display: flex;
  align-items: center;
  justify-content: space-between;
  position: fixed;
  inset: 0 0 auto;
  z-index: 20;
  background: #101112dc;
  backdrop-filter: blur(16px);
  border-bottom: 1px solid var(--line);
  gap: 28px;
}
.brand {
  display: flex;
  align-items: center;
  gap: 17px;
  font-family: Manrope;
  font-size: 17px;
  letter-spacing: -.6px;
  white-space: nowrap;
}
.brand-sub {
  display: block;
  font-family: "DM Sans";
  font-size: 12px;
  letter-spacing: .1px;
  color: var(--muted);
  margin-top: 4px;
}
.monogram {
  font-weight: 800;
  letter-spacing: -5px;
  font-size: 44px;
  line-height: 1;
  position: relative;
  margin-right: 12px;
}
.monogram > span {
  font-size: 18px;
  position: absolute;
  right: -14px;
  top: -2px;
}
.site-header nav {
  display: flex;
  gap: 34px;
  align-items: center;
  font-size: 14px;
  color: #c7c7c9;
}
.site-header nav a {
  padding: 10px 0;
}
.site-header nav a:hover {
  color: #fff;
}
sup {
  font-size: 9px;
  color: #8d8b95;
  margin-left: 3px;
}
.nav-contact {
  padding: 13px 19px;
  border: 1px solid #ffffff35;
  border-radius: 5px;
  font-size: 14px;
  display: flex;
  gap: 28px;
  align-items: center;
  background: #17181a80;
}
.nav-contact:hover {
  background: #eeeDE8;
  color: #161719;
}
.journey {
  position: relative;
  min-height: 900px;
}
.journey-sticky {
  height: max(850px, 100svh);
  position: relative;
  overflow: hidden;
  border-bottom: 1px solid var(--line);
}
.scene {
  position: absolute;
  inset: 0;
  opacity: 0;
  pointer-events: none;
}
.scene canvas {
  display: block;
  width: 100%;
  height: 100%;
}
.ambient {
  position: absolute;
  width: 80vw;
  height: 70vw;
  top: 0;
  right: -30vw;
  background:
    radial-gradient(
      ellipse,
      #7565a612,
      transparent 65%);
  pointer-events: none;
}
.hero-copy {
  position: absolute;
  z-index: 2;
  left: var(--pad);
  top: 26%;
  width: 47%;
  max-width: 670px;
  will-change: transform, opacity;
}
.eyebrow {
  font-family: "DM Sans";
  font-size: 12px;
  letter-spacing: .15em;
  line-height: 1.5;
  display: block;
  font-weight: 400;
}
.tiny-cross {
  font-size: 18px;
  vertical-align: middle;
  color: var(--accent);
  margin-right: 10px;
}
.hero-copy .eyebrow {
  margin-bottom: 25px;
  color: #c1bec9;
}
h1 {
  font-size: clamp(66px, 6.75vw, 106px);
  line-height: 1.055;
  letter-spacing: -.07em;
  margin-bottom: 26px;
}
h1 > span {
  color: #a1a0a8;
}
.hero-intro {
  font-size: 16px;
  color: #aaa9b1;
  max-width: 380px;
  margin-bottom: 31px;
  line-height: 1.65;
}
.hero-actions {
  display: flex;
  align-items: center;
  gap: 27px;
  font-size: 14px;
}
.button {
  display: inline-flex;
  justify-content: space-between;
  gap: 30px;
  align-items: center;
  min-height: 51px;
  padding: 15px 21px;
  border-radius: 4px;
  font-size: 14px;
  border: 0;
  transition: background .2s, transform .2s;
}
.button:hover {
  transform: translateY(-2px);
}
.button-light {
  background: var(--ink);
  color: #151618;
}
.button-light:hover {
  background: #fff;
}
.text-link {
  padding: 14px 0;
  border-bottom: 1px solid #ffffff45;
  display: inline-flex;
  gap: 19px;
  align-items: center;
}
.text-link:hover {
  border-color: var(--accent);
  color: var(--accent);
}
.journey-bottom {
  position: absolute;
  bottom: 32px;
  left: var(--pad);
  right: var(--pad);
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-size: 10px;
  letter-spacing: .12em;
  color: #a3a1aa;
  z-index: 7;
  pointer-events: none;
}
.scroll-hint {
  display: flex;
  gap: 12px;
  align-items: center;
}
.scroll-hint i {
  width: 17px;
  height: 27px;
  border: 1px solid #8b8991;
  border-radius: 15px;
  position: relative;
}
.scroll-hint i:after {
  content: "";
  position: absolute;
  top: 5px;
  left: 7px;
  width: 1px;
  height: 6px;
  background: #c3c1ce;
}
.scene-counter {
  display: flex;
  gap: 14px;
  font-size: 12px;
}
.scene-counter b {
  color: var(--ink);
  font-weight: 400;
}
.scene-counter > span {
  color: #73717a;
}
.scene-progress {
  position: absolute;
  bottom: 0;
  height: 2px;
  background: #ffffff0c;
  width: 100%;
  z-index: 8;
}
.scene-progress span {
  display: block;
  height: 100%;
  background: #b3a4e0;
  width: 0;
}
.skip-experience {
  display: none;
  position: absolute;
  z-index: 10;
  right: var(--pad);
  top: 128px;
  color: #99959f;
  font-size: 12px;
  gap: 25px;
  align-items: center;
}
.scene-caption {
  display: none;
  position: absolute;
  left: var(--pad);
  top: 36%;
  z-index: 3;
  max-width: 560px;
  pointer-events: none;
}
.scene-caption .eyebrow {
  color: var(--accent);
  margin-bottom: 30px;
}
.scene-caption h2,
.interior-copy h2 {
  font-size: clamp(44px, 4.4vw, 68px);
  line-height: 1.13;
  letter-spacing: -.055em;
  margin-bottom: 25px;
}
.scene-caption h2 em,
.interior-copy em {
  font-style: normal;
  color: #939099;
}
.scene-caption p {
  color: #a3a0ab;
  line-height: 1.8;
  font-size: 17px;
}
.static-visual {
  position: absolute;
  width: 55%;
  right: -6%;
  top: 26%;
  transform: perspective(1000px) rotateY(-15deg) rotateZ(3deg);
  padding: 14px;
  border: 1px solid #72717c;
  background: #1a1a1f;
  border-radius: 16px;
  box-shadow: 0 50px 100px #0008;
}
.static-visual img {
  aspect-ratio: 1.6;
  object-fit: cover;
}
.static-visual-label {
  position: absolute;
  top: 12%;
  left: 8%;
  font-family: Manrope;
  letter-spacing: .3em;
}
.static-visual-label span {
  display: block;
  letter-spacing: -.03em;
  font-size: 30px;
  margin-top: 28px;
}
.interior-scene {
  display: none;
  position: absolute;
  inset: 0;
  z-index: 5;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  background:
    radial-gradient(
      ellipse at 50% 100%,
      #292134,
      #101112 70%);
  pointer-events: none;
}
.interior-copy {
  width: 84%;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  margin: 80px 0 32px;
}
.interior-copy .eyebrow {
  width: 100%;
  color: var(--accent);
  margin-bottom: 24px;
}
.interior-copy h2 {
  font-size: 45px;
  margin: 0;
}
.interior-copy p {
  color: #aaa6b1;
  font-size: 15px;
  margin: 0;
}
.app-panel {
  width: min(1000px, 80vw);
  background: #e7e5df;
  color: #202021;
  border-radius: 16px 16px 0 0;
  box-shadow: 0 50px 120px #0009;
  overflow: hidden;
}
.app-nav {
  height: 75px;
  display: flex;
  align-items: center;
  gap: 36px;
  padding: 0 32px;
  border-bottom: 1px solid #1112;
}
.app-nav b {
  font-family: Manrope;
  font-size: 26px;
  letter-spacing: -1.5px;
}
.app-nav b span {
  font-size: 12px;
  vertical-align: top;
}
.app-nav > span:not(.avatar) {
  font-size: 12px;
  color: #67666b;
}
.avatar {
  margin-left: auto;
  width: 31px;
  height: 31px;
  background: #cbc5d7;
  border-radius: 50%;
  display: grid;
  place-items: center;
  font-size: 10px;
}
.app-content {
  display: flex;
  min-height: 330px;
}
.app-sidebar {
  width: 220px;
  padding: 32px 20px;
  display: flex;
  flex-direction: column;
  gap: 22px;
  font-size: 12px;
  background: #dddbd5;
}
.app-sidebar b {
  background: #ccc5d8;
  padding: 12px;
  border-radius: 6px;
  font-weight: 400;
}
.app-sidebar > span {
  padding: 0 12px;
  color: #65636b;
}
.app-sidebar small {
  margin: 45px 12px 0;
  font-size: 9px;
  letter-spacing: .12em;
  color: #77727b;
}
.app-work {
  padding: 30px 40px 40px;
  flex: 1;
}
.micro-label {
  font-size: 10px;
  letter-spacing: .12em;
  color: #77727b;
}
.app-work h3 {
  font-size: 32px;
  line-height: 1.1;
  letter-spacing: -1.5px;
  margin-bottom: 16px;
}
.app-summary {
  display: flex;
  gap: 25px;
  margin-bottom: 22px;
  font-size: 11px;
  color: #67636c;
}
.app-summary b {
  font-size: 17px;
  color: #27242d;
  margin-right: 4px;
}
.task {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 13px 0;
  border-top: 1px solid #1112;
  font-size: 12px;
}
.task i {
  border: 1px solid #aaa5b1;
  width: 15px;
  height: 15px;
  border-radius: 4px;
  font-size: 10px;
  font-style: normal;
}
.task small {
  display: block;
  font-size: 10px;
  color: #77727b;
  margin-top: 3px;
}
.task em {
  margin-left: auto;
  font-size: 9px;
  font-style: normal;
  border: 1px solid #1112;
  padding: 5px 8px;
  border-radius: 20px;
}
.task .checked {
  background: #514b5a;
  color: #fff;
  text-align: center;
}
.site-footer {
  padding: 32px var(--pad);
  display: flex;
  align-items: center;
  justify-content: space-between;
  border-top: 1px solid var(--line);
  font-size: 12px;
  color: #8f8c96;
  gap: 25px;
}
.footer-name {
  color: var(--ink);
  font-family: Manrope;
  font-size: 15px;
}
.footer-name span {
  font-family: "DM Sans";
  font-size: 11px;
  color: #8f8c96;
  margin-left: 20px;
}
.site-footer button {
  background: transparent;
  border: 0;
  color: inherit;
  padding: 8px 0;
  font-size: 12px;
}
.site-footer a:hover,
.site-footer button:hover {
  color: #fff;
}
.motion-on .journey {
  height: 640svh;
  min-height: 0;
}
.motion-on .journey-sticky {
  height: 100svh;
  min-height: 650px;
  position: sticky;
  top: 0;
}
.motion-on .scene {
  opacity: 1;
}
.motion-on .static-visual {
  display: none;
}
.motion-on .scene-caption {
  display: block;
  opacity: 0;
}
.motion-on .interior-scene {
  display: flex;
  opacity: 0;
}
.motion-on .skip-experience {
  display: flex;
}
.motion-on .site-header {
  position: fixed;
}
@media (min-width: 1600px) {
  .hero-copy {
    top: 27%;
  }
  .hero-intro {
    font-size: 18px;
    max-width: 410px;
  }
  .hero-actions {
    gap: 35px;
  }
  .hero-disciplines {
    margin-left: 200px;
  }
}
@media (max-width: 1100px) {
  .site-header nav {
    gap: 20px;
  }
  .site-header {
    gap: 18px;
  }
  .brand-sub {
    font-size: 10px;
  }
  .nav-contact {
    gap: 15px;
  }
  h1 {
    font-size: 7vw;
  }
  .hero-copy {
    width: 49%;
    top: 28%;
  }
  .hero-intro {
    font-size: 15px;
    max-width: 330px;
  }
  .hero-actions {
    gap: 18px;
  }
  .text-link,
  .button {
    font-size: 12px;
  }
  .hero-disciplines {
    display: none;
  }
  .scene-caption h2 {
    font-size: 5vw;
  }
}
@media (max-width: 700px) {
  :root {
    --pad:23px;
  }
  .site-header {
    height: 81px;
    gap: 12px;
  }
  .brand {
    font-size: 14px;
    gap: 10px;
  }
  .monogram {
    font-size: 35px;
  }
  .monogram > span {
    font-size: 15px;
    right: -12px;
  }
  .brand-sub {
    font-size: 9px;
  }
  .site-header nav {
    display: none;
  }
  .nav-contact {
    font-size: 11px;
    padding: 10px 12px;
    gap: 13px;
  }
  .nav-contact {
    max-width: 160px;
  }
  .hero-copy {
    top: 132px;
    width: calc(100% - 46px);
    max-width: none;
  }
  .eyebrow {
    font-size: 10px;
  }
  .hero-copy .eyebrow {
    margin-bottom: 20px;
  }
  h1 {
    font-size: clamp(48px, 12.3vw, 78px);
    line-height: 1.07;
    letter-spacing: -.065em;
    margin-bottom: 22px;
  }
  .hero-intro {
    font-size: 14px;
    line-height: 1.7;
    max-width: 340px;
    margin-bottom: 23px;
  }
  .hero-actions {
    gap: 25px;
  }
  .button {
    min-height: 48px;
    font-size: 12px;
    padding: 13px 18px;
    gap: 23px;
  }
  .text-link {
    font-size: 12px;
    gap: 10px;
  }
  .journey-sticky {
    min-height: 850px;
    height: 1040px;
  }
  .static-visual {
    width: 90%;
    right: -5%;
    top: 61%;
    transform: perspective(900px) rotateY(-12deg) rotateZ(4deg);
  }
  .journey-bottom {
    bottom: 22px;
    font-size: 9px;
  }
  .motion-on .journey {
    height: 480svh;
  }
  .motion-on .journey-sticky {
    min-height: 760px;
    height: 100svh;
  }
  .scene-caption {
    left: var(--pad);
    top: 17%;
    width: 90%;
    max-width: none;
  }
  .scene-caption .eyebrow {
    margin-bottom: 22px;
  }
  .scene-caption h2 {
    font-size: 11.5vw;
    margin-bottom: 18px;
  }
  .scene-caption p {
    font-size: 14px;
    line-height: 1.65;
  }
  .skip-experience {
    top: 99px;
    font-size: 10px;
  }
  .interior-copy {
    width: 88%;
    margin: 78px 0 30px;
    display: block;
  }
  .interior-copy .eyebrow {
    margin-bottom: 22px;
  }
  .interior-copy h2 {
    font-size: 35px;
    margin-bottom: 20px;
  }
  .interior-copy p {
    font-size: 13px;
  }
  .app-panel {
    width: 88vw;
  }
  .app-nav {
    height: 62px;
    padding: 0 22px;
  }
  .app-nav b {
    font-size: 25px;
  }
  .app-nav > span:not(.avatar) {
    display: none;
  }
  .app-sidebar {
    display: none;
  }
  .app-work {
    padding: 28px 22px;
  }
  .app-work h3 {
    font-size: 33px;
  }
  .task {
    font-size: 11px;
    gap: 9px;
  }
  .task em {
    font-size: 8px;
  }
  .app-content {
    min-height: 330px;
  }
  .site-footer {
    flex-wrap: wrap;
    padding: 30px var(--pad);
    gap: 25px;
  }
  .site-footer > span {
    width: 100%;
    order: 4;
    font-size: 11px;
  }
  .site-footer > a:last-child {
    margin-left: auto;
    font-size: 10px;
  }
}
@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto;
  }
  *,
  *:before,
  *:after {
    animation: none !important;
    transition: none !important;
  }
}
.motion-reduced {
  scroll-behavior: auto;
}
.motion-reduced .button:hover {
  transform: none;
}
.app-feature {
  float: right;
  width: 47%;
  padding: 18px;
  background: #c5b8db;
  border-radius: 10px;
  margin: 0 0 22px 22px;
}
.app-feature small {
  font-size: 8px;
  letter-spacing: .08em;
  color: #5b486f;
}
.app-feature b {
  font-family: Manrope;
  display: block;
  font-weight: 500;
  font-size: 23px;
  margin: 14px 0 9px;
  letter-spacing: -1px;
}
.app-feature b span {
  float: right;
}
.app-feature > span {
  font-size: 10px;
  color: #5b486f;
  display: block;
}
.app-feature i {
  display: block;
  height: 3px;
  background:
    linear-gradient(
      90deg,
      #665078 60%,
      #a89cba 60%);
  margin-top: 23px;
}
.app-work > .task {
  clear: both;
}
@media (max-width: 700px) {
  .app-feature {
    display: none;
  }
}
.content-section {
  padding: 105px var(--pad);
}
.section-top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  border-bottom: 1px solid var(--line);
  padding-bottom: 24px;
  margin-bottom: 55px;
}
.section-top .eyebrow {
  margin: 0;
  color: #a5a0b0;
  font-size: 11px;
}
.section-note {
  color: #74717b;
  font-size: 10px;
  letter-spacing: .12em;
}
.section-heading {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 45px;
  margin-bottom: 65px;
}
.section-heading h2 {
  font-size: clamp(36px, 3.9vw, 61px);
  line-height: 1.16;
  letter-spacing: -.055em;
  margin: 0;
}
.section-heading h2 span {
  color: #8e8a95;
}
.section-heading > p {
  font-size: 15px;
  color: #a3a0aa;
  max-width: 330px;
  margin: 0;
  line-height: 1.75;
}
.systems-grid {
  display: grid;
  grid-template-columns: 1fr 1.35fr;
  border: 1px solid var(--line);
  background: #151617;
  border-radius: 8px;
  overflow: hidden;
  margin-bottom: 75px;
}
.systems-copy {
  padding: 60px 50px;
  align-self: center;
}
.small-index {
  font-size: 10px;
  letter-spacing: .12em;
  color: var(--accent);
}
.systems-copy h3 {
  font-size: 37px;
  line-height: 1.16;
  letter-spacing: -1.6px;
  margin: 30px 0 23px;
}
.systems-copy p {
  font-size: 15px;
  color: #a4a0ac;
  max-width: 320px;
  line-height: 1.8;
  margin-bottom: 26px;
}
.systems-copy .text-link {
  font-size: 12px;
}
.workflow {
  background: #1b1b1f;
  position: relative;
  border-left: 1px solid var(--line);
  padding: 28px 34px;
}
.workflow-head {
  display: flex;
  justify-content: space-between;
  align-items: center;
  border-bottom: 1px solid #ffffff12;
  padding-bottom: 20px;
}
.workflow-head b {
  font-family: Manrope;
  font-size: 19px;
  letter-spacing: -.8px;
  font-weight: 500;
}
.workflow-head b > span {
  font-family: "DM Sans";
  font-size: 10px;
  color: #716c7c;
  letter-spacing: 0;
}
.workflow-head > span {
  font-size: 8px;
  letter-spacing: .12em;
  color: #9b96a7;
}
.workflow-diagram {
  padding: 28px 8%;
  position: relative;
  background-image: radial-gradient(#ffffff16 .7px, transparent .7px);
  background-size: 16px 16px;
}
.flow-node {
  max-width: 290px;
  margin: auto;
  padding: 16px 18px;
  border: 1px solid #fff3;
  display: flex;
  align-items: center;
  gap: 15px;
  border-radius: 7px;
  background:
    linear-gradient(
      120deg,
      #323039,
      #242229);
  position: relative;
  z-index: 1;
}
.flow-icon {
  font-size: 22px;
  color: #c1b3da;
  width: 37px;
  height: 37px;
  display: grid;
  place-items: center;
  border: 1px solid #a499b844;
  border-radius: 7px;
}
.flow-node small {
  display: block;
  font-size: 8px;
  letter-spacing: .12em;
  color: #a39aaa;
  margin-bottom: 6px;
}
.flow-node strong {
  font-size: 12px;
  font-weight: 400;
}
.node-dot {
  margin-left: auto;
  width: 5px;
  height: 5px;
  background: #aea1c6;
  border-radius: 50%;
  box-shadow: 0 0 10px #aea1c650;
}
.flow-connector {
  height: 62px;
  position: relative;
  display: grid;
  place-items: center;
}
.flow-connector > span {
  height: 100%;
  width: 1px;
  background: #aaa0bd80;
  position: absolute;
  top: 0;
}
.flow-connector em {
  font-style: normal;
  position: relative;
  padding: 5px 8px;
  background: #1b1b1f;
  color: #9b90a9;
  font-size: 9px;
  left: 92px;
}
.node-center {
  border-color: #a69ab970;
  background:
    linear-gradient(
      120deg,
      #413849,
      #2a2632);
}
.flow-branches {
  display: flex;
  padding-top: 28px;
  position: relative;
}
.flow-branches:before {
  content: "";
  position: absolute;
  width: 50%;
  height: 1px;
  left: 25%;
  top: 28px;
  background: #aaa0bd70;
}
.flow-branches:after {
  content: "";
  height: 28px;
  width: 1px;
  position: absolute;
  left: 50%;
  top: 0;
  background: #aaa0bd70;
}
.flow-branches > div {
  flex: 1;
}
.flow-branches > div > span {
  display: block;
  height: 26px;
  width: 1px;
  background: #aaa0bd70;
  margin: auto;
}
.flow-output {
  background: #232227;
  border: 1px solid #fff2;
  border-radius: 5px;
  padding: 15px 10px;
  margin: 0 9px;
  font-size: 10px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
}
.flow-output i {
  color: #bbabcf;
  font-size: 17px;
  font-style: normal;
}
.workflow-foot {
  display: flex;
  justify-content: space-between;
  font-size: 9px;
  color: #7f768d;
  border-top: 1px solid #ffffff12;
  padding-top: 18px;
}
.performance-line {
  display: grid;
  grid-template-columns: 1.2fr 1fr .8fr;
  gap: 55px;
  align-items: center;
  padding: 0 0 70px;
  border-bottom: 1px solid var(--line);
}
.performance-line .eyebrow {
  font-size: 9px;
  color: #aaa0bb;
  margin-bottom: 17px;
}
.performance-line h3 {
  font-size: 29px;
  line-height: 1.25;
  letter-spacing: -1.4px;
  margin: 0;
}
.performance-line > p {
  font-size: 14px;
  color: #a5a0ac;
  line-height: 1.8;
  margin: 0;
}
.performance-tags {
  display: flex;
  flex-direction: column;
  gap: 11px;
  font-size: 12px;
}
.performance-tags > span {
  border-bottom: 1px solid #ffffff15;
  padding-bottom: 10px;
  display: flex;
  justify-content: space-between;
}
.performance-tags i {
  font-style: normal;
  color: #bca9da;
}
.capability-list {
  margin-top: 15px;
}
.capability-list details {
  border-bottom: 1px solid var(--line);
}
summary {
  list-style: none;
  cursor: pointer;
}
summary::-webkit-details-marker {
  display: none;
}
.capability-list summary {
  padding: 28px 0;
  display: flex;
  align-items: center;
  gap: 30px;
}
.capability-list summary > span {
  font-size: 11px;
  color: #8c8398;
  min-width: 45px;
}
.capability-list h3 {
  font-size: 27px;
  letter-spacing: -1px;
  margin: 0;
}
.capability-list summary p {
  color: #8f8998;
  font-size: 13px;
  margin: 0 35px 0 auto;
}
.capability-list summary i {
  font-size: 25px;
  font-weight: 400;
  font-style: normal;
  width: 25px;
  text-align: center;
  transition: transform .2s;
}
.capability-list details[open] summary i {
  transform: rotate(45deg);
}
.capability-body {
  max-width: 730px;
  padding: 0 0 29px 75px;
  color: #a4a0ad;
  font-size: 15px;
  line-height: 1.8;
}
@media (max-width: 1100px) {
  .systems-copy {
    padding: 35px 30px;
  }
  .systems-copy h3 {
    font-size: 30px;
  }
  .workflow {
    padding: 25px 22px;
  }
  .section-heading {
    align-items: flex-start;
  }
  .section-heading > p {
    max-width: 290px;
    font-size: 14px;
  }
  .performance-line {
    gap: 30px;
  }
  .performance-line h3 {
    font-size: 26px;
  }
  .capability-list summary p {
    font-size: 12px;
    margin-right: 15px;
  }
}
@media (max-width: 700px) {
  .content-section {
    padding: 70px var(--pad);
  }
  .section-top {
    padding-bottom: 20px;
    margin-bottom: 36px;
  }
  .section-top .eyebrow {
    font-size: 10px;
  }
  .section-note {
    font-size: 8px;
    max-width: 135px;
    text-align: right;
    line-height: 1.7;
  }
  .section-heading {
    display: block;
    margin-bottom: 35px;
  }
  .section-heading h2 {
    font-size: 36px;
    letter-spacing: -1.8px;
    line-height: 1.16;
  }
  .section-heading > p {
    margin-top: 25px;
    font-size: 14px;
    max-width: none;
  }
  .systems-grid {
    grid-template-columns: 1fr;
    margin-bottom: 42px;
  }
  .systems-copy {
    padding: 30px 25px 35px;
  }
  .systems-copy h3 {
    font-size: 32px;
    margin-top: 23px;
  }
  .systems-copy p {
    font-size: 14px;
  }
  .workflow {
    border-left: 0;
    border-top: 1px solid var(--line);
    padding: 23px 18px;
  }
  .workflow-head > span {
    font-size: 7px;
  }
  .workflow-diagram {
    padding: 25px 0;
  }
  .flow-node {
    max-width: 245px;
  }
  .flow-connector em {
    left: 78px;
    font-size: 8px;
  }
  .flow-output {
    font-size: 9px;
    gap: 8px;
    padding: 13px 6px;
    margin: 0 5px;
  }
  .workflow-foot {
    font-size: 8px;
  }
  .performance-line {
    grid-template-columns: 1fr;
    gap: 24px;
    padding-bottom: 38px;
  }
  .performance-line h3 {
    font-size: 29px;
  }
  .performance-tags {
    flex-direction: row;
    gap: 15px;
    font-size: 10px;
    justify-content: space-between;
  }
  .performance-tags > span {
    gap: 8px;
  }
  .capability-list summary {
    padding: 25px 0;
    gap: 15px;
    flex-wrap: wrap;
    position: relative;
  }
  .capability-list summary > span {
    min-width: 22px;
    font-size: 10px;
  }
  .capability-list h3 {
    font-size: 21px;
    letter-spacing: -.7px;
    max-width: 80%;
  }
  .capability-list summary p {
    width: calc(100% - 45px);
    margin-left: 37px;
    font-size: 11px;
  }
  .capability-list summary i {
    position: absolute;
    right: 0;
    top: 22px;
  }
  .capability-body {
    font-size: 14px;
    padding: 0 0 25px 37px;
  }
}
.work-section {
  background: #141517;
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
}
.project-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 40px 30px;
  align-items: start;
}
.project {
  border: 1px solid #ffffff1c;
  border-radius: 6px;
  overflow: hidden;
  background: #191a1d;
  min-width: 0;
}
.project-featured {
  grid-column: 1/-1;
  display: grid;
  grid-template-columns: 1.25fr 1fr;
}
.project-art {
  height: 390px;
  position: relative;
  overflow: hidden;
}
.project-featured .project-art {
  height: 100%;
  min-height: 500px;
}
.matiere-art {
  background: #0c0d0e;
}
.matiere-art img {
  height: 100%;
  width: 100%;
  object-fit: cover;
  object-position: 68% center;
  opacity: .95;
  transition: transform .8s;
}
.project:hover .matiere-art img {
  transform: scale(1.025);
}
.art-wordmark {
  position: absolute;
  top: 40px;
  left: 36px;
  font-family: Manrope;
  font-size: 24px;
  letter-spacing: .25em;
}
.art-wordmark span {
  font-family: "DM Sans";
  font-size: 8px;
  letter-spacing: .13em;
  display: block;
  margin-top: 9px;
  color: #a19ba8;
}
.art-index {
  position: absolute;
  bottom: 22px;
  left: 30px;
  letter-spacing: .16em;
  font-size: 8px;
  color: #a9a0b6;
}
.project-info {
  padding: 34px;
}
.project-featured .project-info {
  padding: 42px;
}
.project-kicker {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 29px;
  gap: 20px;
  font-size: 9px;
  letter-spacing: .12em;
  color: #a09aaa;
}
.concept-badge {
  font-size: 9px;
  letter-spacing: .02em;
  border: 1px solid #8c84943b;
  padding: 5px 9px;
  border-radius: 3px;
  color: #afa5bd;
}
.project h3 {
  font-size: 39px;
  letter-spacing: -1.8px;
  margin-bottom: 18px;
}
.project-lead {
  font-family: Manrope;
  font-size: 24px;
  line-height: 1.25;
  letter-spacing: -.8px;
  color: #c1bac9;
}
.project-description {
  font-size: 14px;
  line-height: 1.8;
  color: #aaa4b3;
  max-width: 420px;
}
.project-tags {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  margin: 25px 0 29px;
}
.project-tags > span {
  font-size: 9px;
  border: 1px solid #ffffff20;
  padding: 6px 9px;
  color: #a49bac;
  border-radius: 3px;
}
.project-details {
  border-top: 1px solid var(--line);
}
.project-details summary {
  font-size: 12px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding-top: 19px;
  gap: 30px;
}
.project-details summary > span {
  font-size: 19px;
}
.project-details[open] summary > span {
  transform: rotate(90deg);
}
.project-details > div {
  padding-top: 23px;
}
.project-details h4 {
  font-size: 13px;
  font-weight: 400;
  color: #ddd6e5;
  margin: 20px 0 8px;
}
.project-details p {
  color: #9f97aa;
  font-size: 13px;
  line-height: 1.8;
}
.project-details a {
  font-size: 12px;
  color: #bfafd8;
  display: inline-block;
  padding: 12px 0;
}
.cadence-art {
  background: #d8d2e1;
  color: #342b3d;
  padding: 34px 48px 0;
}
.cadence-preview {
  background: #eeeae3;
  padding: 25px 31px;
  transform: rotate(-5deg);
  box-shadow: 15px 25px 45px #3c274829;
  border: 1px solid #fff7;
  border-radius: 10px;
  min-height: 400px;
  margin-top: 2px;
  transition: transform .7s;
}
.project:hover .cadence-preview {
  transform: rotate(-3deg) translateY(-4px);
}
.cadence-preview > b {
  font-family: Manrope;
  font-size: 26px;
  letter-spacing: -1.6px;
}
.demo-chip {
  display: block;
  font-size: 7px;
  letter-spacing: .12em;
  color: #8a7e94;
  margin-top: 25px;
}
.cadence-preview h4 {
  font-family: Manrope;
  font-size: 30px;
  line-height: 1.1;
  letter-spacing: -1.5px;
  font-weight: 500;
  margin: 11px 0 20px;
}
.preview-project {
  background: #c8bbdd;
  padding: 17px 20px;
  border-radius: 7px;
}
.preview-project small {
  font-size: 7px;
  letter-spacing: .12em;
  color: #6e587f;
}
.preview-project > span {
  display: block;
  font-family: Manrope;
  font-size: 22px;
  letter-spacing: -.8px;
  margin-top: 8px;
}
.preview-project i {
  float: right;
  font-style: normal;
}
.preview-project p {
  font-size: 8px;
  margin: 9px 0 16px;
  color: #766587;
}
.preview-project > div {
  height: 3px;
  background:
    linear-gradient(
      90deg,
      #68547e 60%,
      #b5a5c7 60%);
}
.preview-task {
  display: flex;
  align-items: center;
  font-size: 8px;
  padding: 16px 0;
  border-bottom: 1px solid #28202f22;
  gap: 9px;
}
.preview-task i {
  width: 9px;
  height: 9px;
  border: 1px solid #9f8da9;
  border-radius: 2px;
}
.preview-task span {
  margin-left: auto;
  font-size: 6px;
  color: #8f7e9a;
}
.cadence-art > .art-index {
  color: #75657f;
}
.relais-art {
  background:
    radial-gradient(
      ellipse at 60% 50%,
      #393142,
      #1d1d24 70%);
  padding: 28px 47px 0;
}
.relais-preview {
  padding: 10px 6px;
}
.relais-preview > div:first-child {
  display: flex;
  align-items: center;
  gap: 20px;
}
.relais-preview b {
  font-family: Manrope;
  font-size: 24px;
  letter-spacing: -1px;
}
.relais-preview > div > span {
  font-size: 7px;
  letter-spacing: .12em;
  color: #a394b5;
}
.relais-preview h4 {
  font-family: Manrope;
  font-size: 30px;
  line-height: 1.16;
  font-weight: 500;
  letter-spacing: -1.3px;
  margin: 25px 0;
}
.relay-mini-row {
  display: flex;
  align-items: center;
  gap: 15px;
  padding: 16px 20px;
  border: 1px solid #ffffff26;
  background: #28252f;
  border-radius: 6px;
}
.relay-mini-row > span {
  font-size: 21px !important;
}
.relay-mini-row p {
  font-size: 12px;
  margin: 0;
}
.relay-mini-row small {
  display: block;
  font-size: 8px;
  color: #998aa8;
  margin-top: 5px;
}
.relay-mini-row i {
  margin-left: auto;
  font-style: normal;
  font-size: 9px;
  color: #9c8aae;
}
.relay-accent {
  background: #3f344d;
  border-color: #ac92c94a;
}
.mini-connector {
  height: 17px;
  width: 1px;
  background: #a48bbf70;
  margin: auto;
}
.relay-mini-bottom {
  display: flex;
  gap: 17px;
  justify-content: center;
}
.relay-mini-bottom > span {
  font-size: 8px;
  background: #2f2839;
  border: 1px solid #aa90bf33;
  padding: 10px 15px;
  border-radius: 4px;
}
.work-disclaimer {
  margin: 30px 0 0;
  color: #898190;
  font-size: 11px;
}
.method-layout {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10%;
}
.method-intro h2 {
  font-size: clamp(40px, 4.3vw, 66px);
  line-height: 1.13;
  letter-spacing: -.06em;
}
.method-intro h2 > span {
  color: #928c99;
}
.method-intro > p {
  max-width: 365px;
  font-size: 15px;
  line-height: 1.9;
  color: #a6a0ad;
  margin: 32px 0;
}
.signature {
  font-family: Manrope;
  font-size: 17px;
  letter-spacing: -.5px;
  border-left: 2px solid #a998c3;
  padding-left: 19px;
  margin-top: 38px;
}
.signature > span {
  display: block;
  font-family: "DM Sans";
  color: #8d8397;
  font-size: 11px;
  letter-spacing: 0;
  margin-top: 5px;
}
.method-steps {
  list-style: none;
  padding: 0;
  margin: 0;
}
.method-steps > li {
  display: flex;
  gap: 30px;
  border-bottom: 1px solid var(--line);
  padding: 30px 0;
}
.method-steps > li:first-child {
  padding-top: 0;
}
.method-steps > li > span {
  font-size: 10px;
  color: #b0a2c1;
  padding-top: 5px;
}
.method-steps h3 {
  font-size: 19px;
  letter-spacing: -.6px;
  margin-bottom: 10px;
}
.method-steps p {
  font-size: 14px;
  line-height: 1.8;
  color: #9f96a9;
  margin: 0;
}
.contact-section {
  border-top: 1px solid var(--line);
  padding-bottom: 110px;
  background:
    radial-gradient(
      ellipse at 90% 110%,
      #4c365526,
      transparent 60%);
}
.contact-layout {
  display: grid;
  grid-template-columns: 1.25fr 1fr;
  align-items: start;
  gap: 10%;
}
.contact-layout h2 {
  font-size: clamp(45px, 4.8vw, 75px);
  line-height: 1.14;
  letter-spacing: -.065em;
  margin-bottom: 28px;
}
.contact-layout h2 span {
  color: #a798b6;
}
.contact-layout > div > p {
  font-size: 15px;
  color: #a8a0b1;
  line-height: 1.85;
}
.brief-download {
  display: inline-flex;
  font-size: 11px;
  color: #9b8fab;
  gap: 25px;
  margin-top: 28px;
  padding-bottom: 10px;
  border-bottom: 1px solid #9b8fab44;
}
.contact-details {
  padding-top: 9px;
}
.contact-details > summary {
  max-width: 250px;
  min-height: 58px;
  font-size: 15px;
}
.contact-details[open] > summary {
  margin-bottom: 30px;
}
.contact-intro {
  font-size: 15px;
  color: #b2a7be;
}
.form-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 20px;
}
label {
  display: block;
  font-size: 12px;
  color: #b9aec4;
  margin-bottom: 22px;
}
input,
textarea,
select {
  display: block;
  width: 100%;
  background: #ffffff04;
  color: #ede7f3;
  padding: 12px 13px;
  border: 1px solid #ffffff26;
  border-radius: 4px;
  outline: none;
  margin-top: 10px;
  font-size: 13px;
  min-width: 0;
}
textarea {
  resize: vertical;
  min-height: 100px;
}
select {
  background: #1b181f;
  height: 46px;
}
input::placeholder,
textarea::placeholder {
  color: #766d80;
}
input:focus,
textarea:focus,
select:focus {
  border-color: #bca8d7;
}
input:invalid:not(:placeholder-shown) {
  border-color: #be939c;
}
.contact-prototype-note {
  font-size: 10px;
  color: #92859f;
  line-height: 1.7;
  margin: 17px 0 0;
}
.contact-form-content #message-result {
  border-top: 1px solid var(--line);
  padding-top: 27px;
  margin-top: 27px;
}
.result-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px 20px;
  align-items: center;
  margin-top: 17px;
}
.result-actions .button {
  font-size: 11px;
}
.result-actions .text-link {
  font-size: 11px;
}
#contact-status {
  font-size: 12px;
  color: #c7b6dd;
  margin-top: 20px;
}
.mobile-menu {
  display: none;
}
@media (max-width: 1100px) {
  .project-info,
  .project-featured .project-info {
    padding: 30px;
  }
  .project-art {
    height: 350px;
  }
  .cadence-art {
    padding: 32px 30px 0;
  }
  .relais-art {
    padding: 24px 28px 0;
  }
  .contact-layout {
    gap: 6%;
  }
  .method-layout {
    gap: 8%;
  }
  .method-steps h3 {
    font-size: 17px;
  }
}
@media (max-width: 700px) {
  .site-header > .nav-contact {
    display: none;
  }
  .site-header {
    justify-content: space-between;
  }
  .mobile-menu {
    display: block;
  }
  .mobile-menu summary {
    font-size: 12px;
    padding: 12px;
    border: 1px solid #ffffff30;
    border-radius: 4px;
  }
  .mobile-menu summary span {
    margin-left: 22px;
    color: #c1b3d5;
  }
  .mobile-menu[open] summary {
    background: #ece8f0;
    color: #1e1a23;
  }
  .mobile-menu nav {
    display: flex;
    position: absolute;
    top: 81px;
    left: 0;
    right: 0;
    flex-direction: column;
    gap: 0;
    background: #19171eee;
    padding: 15px var(--pad) 23px;
    backdrop-filter: blur(20px);
    border-bottom: 1px solid #ffffff30;
    align-items: stretch;
  }
  .mobile-menu nav a {
    padding: 17px 4px;
    border-bottom: 1px solid #ffffff18;
    font-size: 16px;
    display: flex;
    justify-content: space-between;
  }
  .mobile-menu nav span {
    font-size: 10px;
    color: #a696bb;
  }
  .project-grid {
    grid-template-columns: 1fr;
    gap: 24px;
  }
  .project-featured {
    display: block;
  }
  .project-art,
  .project-featured .project-art {
    height: 335px;
    min-height: 0;
  }
  .project-info,
  .project-featured .project-info {
    padding: 26px;
  }
  .project-kicker {
    font-size: 8px;
    margin-bottom: 22px;
    gap: 10px;
  }
  .project h3 {
    font-size: 35px;
    letter-spacing: -1.7px;
  }
  .project-lead {
    font-size: 24px;
  }
  .project-description {
    font-size: 14px;
  }
  .project-tags {
    margin: 23px 0;
  }
  .project-tags > span {
    font-size: 8px;
  }
  .art-wordmark {
    top: 26px;
    left: 26px;
    font-size: 21px;
  }
  .art-index {
    left: 26px;
    font-size: 7px;
  }
  .cadence-art {
    padding: 28px 31px 0;
  }
  .cadence-preview {
    padding: 23px;
  }
  .relais-art {
    padding: 21px 29px 0;
  }
  .relais-preview h4 {
    font-size: 27px;
    margin: 22px 0;
  }
  .relais-preview b {
    font-size: 23px;
  }
  .relay-mini-row {
    padding: 13px 16px;
  }
  .relay-mini-row p {
    font-size: 10px;
  }
  .relay-mini-bottom > span {
    font-size: 7px;
    padding: 8px 12px;
  }
  .work-disclaimer {
    font-size: 10px;
    line-height: 1.8;
  }
  .method-layout {
    grid-template-columns: 1fr;
    gap: 42px;
  }
  .method-intro h2 {
    font-size: 43px;
  }
  .method-intro > p {
    font-size: 14px;
  }
  .signature {
    margin-top: 27px;
  }
  .method-steps > li {
    gap: 20px;
    padding: 24px 0;
  }
  .method-steps h3 {
    font-size: 17px;
  }
  .method-steps p {
    font-size: 13px;
  }
  .contact-layout {
    grid-template-columns: 1fr;
    gap: 35px;
  }
  .contact-layout h2 {
    font-size: 43px;
    letter-spacing: -2.6px;
  }
  .contact-layout > div > p {
    font-size: 14px;
  }
  .contact-details {
    padding-top: 0;
  }
  .contact-details > summary {
    max-width: none;
    min-height: 56px;
  }
  .contact-section {
    padding-bottom: 65px;
  }
  .form-row {
    gap: 14px;
  }
  input,
  textarea,
  select {
    font-size: 16px;
  }
  .brief-download {
    margin-top: 17px;
  }
  .contact-details > summary {
    font-size: 14px;
  }
}
[hidden] {
  display: none !important;
}
@media (max-height: 730px) and (min-width: 701px) {
  .hero-copy {
    top: 25%;
  }
  h1 {
    font-size: clamp(55px, 6.1vw, 80px);
  }
  .hero-copy .eyebrow {
    margin-bottom: 16px;
  }
  .hero-intro {
    font-size: 14px;
    margin-bottom: 18px;
  }
  .hero-actions .button {
    min-height: 44px;
  }
  .hero-actions .text-link {
    padding: 10px 0;
  }
  .interior-copy {
    margin: 95px 0 22px;
  }
  .interior-copy h2 {
    font-size: 35px;
  }
  .app-content {
    min-height: 300px;
  }
  .app-work {
    padding: 23px 30px;
  }
  .app-nav {
    height: 60px;
  }
  .app-panel {
    width: 75vw;
  }
  .task {
    padding: 9px 0;
  }
  .app-feature {
    padding: 12px;
  }
  .app-feature b {
    margin: 8px 0;
  }
  .app-feature i {
    margin-top: 17px;
  }
}
.section-heading > p,
.systems-copy p,
.performance-line > p,
.project-description,
.method-intro > p,
.method-steps p,
.contact-layout > div > p {
  font-size: 16px;
  line-height: 1.8;
}
@media (max-width: 700px) {
  .hero-intro {
    font-size: 15px;
  }
  .scene-caption p {
    font-size: 15px;
  }
  .project-details p,
  .capability-body {
    font-size: 15px;
  }
  .section-heading > p,
  .systems-copy p,
  .performance-line > p,
  .project-description,
  .method-intro > p,
  .method-steps p,
  .contact-layout > div > p {
    font-size: 16px;
  }
  .project-kicker,
  .project-tags > span {
    font-size: 10px;
  }
  .work-disclaimer {
    font-size: 12px;
  }
  .capability-list summary p {
    font-size: 13px;
  }
  .site-footer > span {
    font-size: 12px;
  }
}
/* V2: the same DOM surface is mapped to the 3D plane, then becomes the viewport. */
.narrative-surface{display:none;position:absolute;left:0;top:0;transform-origin:0 0;overflow:hidden;background:#151618;pointer-events:none;z-index:2;contain:layout style;will-change:transform;border-radius:10px}.motion-on .narrative-surface{display:block}.matiere-surface,.cadence-surface{position:absolute;inset:0}.cadence-surface{background:#e8e5df;color:#27232c;opacity:0}.matiere-surface>*:not(.m-object){position:absolute;margin:0}.m-brand{font-family:Manrope;letter-spacing:.13em;font-weight:700}.m-menu{color:#a6a0ae;font-size:13px}.m-label{color:#bdb2cd;letter-spacing:.16em;white-space:nowrap}.m-title{font-family:Manrope;line-height:1.08;letter-spacing:-.065em;font-weight:500;z-index:2}.m-object{position:absolute;z-index:1}.m-object canvas{width:100%;height:100%;display:block}.m-description{color:#a9a0b4;font-size:16px;white-space:nowrap}.m-cta{background:#ece7de;color:#252229;border-radius:3px;display:flex;justify-content:space-between;align-items:center;padding:0 20px;white-space:nowrap}.m-cta>span{font-size:22px}.m-edition{font-size:9px;letter-spacing:.12em;color:#c2b8cd;display:flex;justify-content:space-between;gap:20px}.m-edition>span{font-size:8px;color:#85798f}.surface-notch{position:absolute;z-index:5;left:50%;transform:translateX(-50%);top:12px;width:78px;height:19px;background:#090a0c;border-radius:20px;opacity:0}.surface-notch span{display:block;background:#212439;width:7px;height:7px;border-radius:50%;position:absolute;right:8px;top:6px}.cadence-surface>*{position:absolute;margin:0}.c-brand{font-family:Manrope;letter-spacing:-.055em;font-weight:700;line-height:1}.c-brand>span{font-family:'DM Sans';font-size:8px;color:#83738e;display:block;margin-top:9px;letter-spacing:.1em}.c-avatar{border-radius:50%;background:#cfc7dc;display:grid;place-items:center;font-size:11px}.c-eyebrow{color:#7c717f;letter-spacing:.13em;white-space:nowrap}.c-title{line-height:1.12;letter-spacing:-.055em;font-weight:500}.c-feature{background:#c5b8db;border-radius:14px;overflow:hidden;display:flex;flex-direction:column;justify-content:center}.c-feature>small{letter-spacing:.08em;display:block;color:#5d496f;font-size:.38em;line-height:1.4}.c-feature>b{font-family:Manrope;font-size:1em;letter-spacing:-.05em;font-weight:500;line-height:1.2;margin:.5em 0 .36em}.c-feature>b>span{float:right;font-size:1em}.c-feature>p{font-size:.42em;line-height:1.5;color:#5b486f;margin:0;white-space:nowrap}.c-feature>i{display:block;height:.12em;min-height:0;background:linear-gradient(90deg,#665078 60%,#ab9cc0 60%);margin-top:.85em}.c-tasks h3{font-size:1em;font-weight:500;letter-spacing:-.035em;margin:0 0 .7em}.c-tasks h3>span{float:right;color:#8e7d9b;font-size:.8em}.c-tasks .task{font-size:.65em;gap:12px;padding:1em 0}.c-tasks .task small{font-size:.76em}.c-tasks .task em{font-size:.65em}.c-sidebar{display:flex;flex-direction:column;gap:25px;font-size:14px;color:#77707e;border-right:1px solid #27232c20;padding-right:30px}.c-sidebar>b{font-weight:400;background:#d5cce0;border-radius:5px;padding:12px;color:#554461}.c-sidebar small{font-size:8px;letter-spacing:.13em;margin-top:auto}.c-bottom{font-size:12px;color:#766a7e;letter-spacing:.02em}.motion-on .journey{height:540svh}.motion-on .journey-sticky{height:100svh;min-height:0}.motion-on .scene-caption{z-index:4}.motion-on .caption-web{top:125px;left:var(--pad);right:var(--pad);width:auto;max-width:none}.motion-on .caption-web h2,.motion-on .caption-web p{display:none}.motion-on .caption-web .eyebrow{margin:0}.motion-on .caption-commerce{top:36%}.motion-on .journey-bottom{z-index:7}.motion-on .hero-copy{z-index:4}.journey-sticky[data-state="D"] .journey-bottom{color:#81738b}.journey-sticky[data-state="D"] .scene-counter b{color:#504257}.journey-sticky[data-state="D"] .skip-experience{color:#72617e}
@media(max-width:700px){.motion-on .journey{height:450svh}.motion-on .journey-sticky{min-height:0}.motion-on .caption-web{top:120px}.motion-on .caption-commerce,.motion-on .caption-phone{top:143px}.motion-on .scene-caption h2{font-size:clamp(30px,8vw,39px);margin-bottom:12px}.motion-on .scene-caption .eyebrow{font-size:8px;margin-bottom:14px}.motion-on .scene-caption p{font-size:12px;line-height:1.5}.motion-on .scene-caption p br{display:none}.motion-on .caption-phone p{max-width:310px}.motion-on .hero-copy{top:128px}.motion-on .hero-copy .hero-intro{font-size:14px}.motion-on .hero-actions{gap:20px}.m-menu{font-size:10px}}
@media(max-height:710px){.motion-on .hero-copy{top:124px}.motion-on .hero-copy h1{font-size:clamp(43px,6vw,72px)}.motion-on .hero-copy .eyebrow{margin-bottom:12px}.motion-on .hero-intro{font-size:13px;line-height:1.6;margin-bottom:17px}.motion-on .caption-commerce,.motion-on .caption-phone{top:125px}.motion-on .scene-caption h2{font-size:32px}.motion-on .scene-caption p{font-size:12px}}
@media(max-width:700px){.motion-on .caption-commerce p,.motion-on .caption-phone p{display:none}}
@media(max-width:700px) and (max-height:710px){.motion-on .hero-copy h1{font-size:38px;margin-bottom:16px}.motion-on .hero-copy .hero-intro{font-size:12px;line-height:1.65;max-width:310px;margin-bottom:15px}.motion-on .hero-actions .button{min-height:42px;font-size:11px;padding:11px 13px}.motion-on .hero-actions .text-link{font-size:11px}.motion-on .hero-copy .eyebrow{font-size:8px}.motion-on .caption-phone,.motion-on .caption-commerce{top:123px}.motion-on .scene-caption h2{font-size:28px}}

/* Keep every Cadence detail proportional before and after the camera-to-layout handoff. */
.c-brand>span{font-size:.276em;margin-top:1.125em}.c-avatar{font-size:11px}.c-tasks .task{gap:1.086em;border-top-width:.09em}.c-tasks .task i{font-size:.905em;width:1.5em;height:1.5em;border-width:.1em;border-radius:.4em;flex-shrink:0}.c-tasks .task small{margin-top:.357em}.c-tasks .task em{border-width:.139em;padding:.696em 1.113em;border-radius:2.8em}.journey-sticky[data-state="D"] .scroll-hint{visibility:hidden}.motion-on .caption-web{top:112px}.motion-on .caption-web .eyebrow{font-size:10px}
@media(max-width:700px){.motion-on .caption-web{top:116px}.motion-on .caption-web .eyebrow{font-size:8px}}

@media(min-width:701px){.journey-sticky[data-state="D"] .skip-experience{top:110px}}

/* V2.1: remove competing messages; keep one service label and the interface. */
.hero-copy h1{font-size:clamp(64px,6.25vw,96px)}
.hero-copy .hero-intro{max-width:440px;font-size:17px;line-height:1.65}
.motion-on .scene-caption{top:123px;left:var(--pad);width:auto;max-width:none;right:auto;pointer-events:none}
.motion-on .scene-caption .eyebrow{font-size:12px;letter-spacing:.06em;text-transform:none;margin:0;line-height:1.5;color:#b7aec8}
.journey-sticky[data-state="D"] .scene-caption .eyebrow{color:#7a698a}
.motion-on .skip-experience{top:123px;font-size:12px;gap:14px}
.journey-sticky[data-state="D"] .skip-experience{top:123px}
.m-edition{letter-spacing:.025em;color:#9f97aa}
.c-brand>span{font-size:.31em;letter-spacing:.025em;margin-top:.85em}
.c-feature>small{letter-spacing:.025em}
.c-feature>i{flex-shrink:0}
.c-tasks .task{font-size:.77em;padding:1.3em 0;line-height:1.5}
.c-sidebar{gap:24px}
.surface-notch{border-radius:999px}
.surface-notch span{width:9%;height:37%;top:31.5%;right:10%}
.services-followup{margin:35px 0 45px;color:#aaa4b2;font-size:16px;line-height:1.75}
.systems-grid{display:block;max-width:850px;margin:0 auto;border-radius:8px}
.workflow{border-left:0;padding:30px 42px}
.workflow-head b{font-size:18px;letter-spacing:-.35px}
.workflow-head>span{font-size:10px;letter-spacing:.02em}
.workflow-diagram{padding:30px 12% 14px}
.flow-node{max-width:330px}
.flow-node strong{font-size:14px}
.flow-output{font-size:13px}
.capability-list summary{display:grid;grid-template-columns:45px minmax(250px,1fr) minmax(260px,1fr) 25px;gap:28px}
.capability-list summary h3{font-size:27px;line-height:1.3}
.capability-list summary p{font-size:16px;line-height:1.65;margin:0;color:#aaa4b3}
.capability-body{padding-left:73px;font-size:16px;max-width:800px}
.project-featured .project-art{min-height:360px}
.project-featured .project-info{align-self:center}
.project-kicker{margin-bottom:18px}
.project-details{margin-top:30px}
.project-description{font-size:16px;line-height:1.65}
.project-details p{font-size:15px}
.project-details summary,.project-details a{font-size:14px}
.art-wordmark>span{font-size:10px;letter-spacing:.02em}
.preview-task{font-size:11px;line-height:1.5}
.preview-project small{font-size:10px}
.preview-project p{font-size:12px}
.demo-chip{letter-spacing:.02em;font-size:9px;margin-top:8px}
.method-intro>p{max-width:410px}
.method-steps h3{font-size:23px}
.contact-prototype-note{font-size:12px;color:#b0a5bc}
.brief-download{font-size:12px;margin-top:24px}
.site-footer{font-size:12px}
@media(max-width:1000px){.capability-list summary{grid-template-columns:35px 1fr 25px;gap:8px 20px}.capability-list summary>span{grid-row:1/3;align-self:start;padding-top:5px;min-width:0}.capability-list summary h3{grid-column:2;font-size:25px}.capability-list summary p{grid-column:2;grid-row:2;display:block;font-size:15px}.capability-list summary i{grid-column:3;grid-row:1/3}.capability-body{padding-left:55px}.hero-actions{flex-wrap:wrap;gap:12px 24px}}
@media(max-width:700px){
 .hero-copy h1,.motion-on .hero-copy h1{font-size:clamp(43px,11.5vw,60px);line-height:1.08;margin-bottom:22px}
 .hero-copy .hero-intro,.motion-on .hero-copy .hero-intro{font-size:15px;line-height:1.65;max-width:350px;margin-bottom:24px}
 .hero-copy .eyebrow{font-size:10px}
 .hero-actions,.motion-on .hero-actions{gap:12px 20px;flex-wrap:wrap}
 .hero-actions .button,.hero-actions .text-link{font-size:12px}
 .motion-on .scene-caption{top:112px;left:23px;right:auto}
 .motion-on .scene-caption .eyebrow{font-size:11px;letter-spacing:.02em}
 .motion-on .skip-experience,.journey-sticky[data-state="D"] .skip-experience{top:112px;font-size:11px;gap:8px}
 .workflow{padding:24px 18px}.workflow-head{gap:15px}.workflow-head b{font-size:16px}.workflow-head>span{font-size:9px;max-width:100px;text-align:right}
 .workflow-diagram{padding:25px 0 10px}.flow-node{padding:14px;gap:11px}.flow-node strong{font-size:13px}.flow-output{font-size:11px;padding:12px 7px;gap:7px}
 .capability-list summary h3{font-size:23px}.capability-list summary p{font-size:15px}.capability-body{font-size:15px;padding-left:0;padding-bottom:25px}
 .project-featured .project-art{min-height:0;height:300px}.project-featured .project-info{padding:27px}
 .project-details summary,.project-details a{font-size:14px}.project-description{font-size:16px}
 .section-heading>p{font-size:16px;max-width:none}.contact-layout h2{font-size:44px}
 .method-steps h3{font-size:23px}.method-steps p{font-size:16px}
}
@media(max-height:710px) and (min-width:701px){.hero-copy h1,.motion-on .hero-copy h1{font-size:clamp(55px,5.4vw,76px)}.hero-copy .hero-intro,.motion-on .hero-copy .hero-intro{font-size:15px;max-width:380px}}
@media(max-width:700px) and (max-height:710px){.motion-on .hero-copy{top:120px}.motion-on .hero-copy h1{font-size:40px}.motion-on .hero-copy .hero-intro{font-size:14px}.motion-on .hero-actions .button,.motion-on .hero-actions .text-link{font-size:12px}.motion-on .hero-copy .eyebrow{font-size:10px}}
@media(max-width:1000px){.capability-list summary h3{max-width:none}.capability-list summary p{width:auto;margin:0}.capability-list summary i{position:static}}
.preview-tasks-title{font-size:13px;font-weight:500;margin:19px 0 8px}

/* V2.2 : références clients, sans modification des scènes immersives. */
.site-header>nav{gap:24px}.realisations-list{display:grid;gap:86px}.realisation{min-width:0}.realisation-info{display:grid;grid-template-columns:1.1fr 1fr auto;align-items:start;gap:32px;padding-top:28px}.realisation-info h3{font-size:clamp(28px,3.2vw,48px);letter-spacing:-.05em;margin:0;line-height:1.12}.realisation-role>span,.case-role>span{display:block;font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-bottom:9px}.realisation-role h4{font-size:18px;font-weight:500;margin:0 0 8px}.realisation-role p{font-size:15px;line-height:1.6;color:var(--muted);margin:0;max-width:380px}.realisation-info>.text-link{font-size:14px;white-space:nowrap;align-self:center}.showcase-link{display:block;border-radius:14px}.case-showcase{position:relative;aspect-ratio:2/1;background:linear-gradient(125deg,#28282a,#191a1c);border:1px solid #39383c;border-radius:14px;overflow:hidden}.browser-frame,.phone-frame{margin:0;overflow:hidden;box-shadow:0 22px 55px #0005}.browser-frame{position:absolute;width:82%;left:4%;top:6%;border:1px solid #5c5853;border-radius:9px;background:#e8e5df}.browser-bar{height:28px;background:#242527;color:#c4c0ba;font-size:10px;display:flex;align-items:center;justify-content:space-between;padding:0 13px}.browser-bar>span:first-child{font-size:7px;letter-spacing:2px;color:#7f7a74}.browser-frame img{width:100%;height:auto}.phone-frame{position:absolute;width:20%;right:4%;bottom:6%;border:6px solid #1b1b1d;border-radius:22px;background:#1b1b1d}.phone-frame img{width:100%;height:auto;border-radius:15px}.phone-frame figcaption{font-size:10px;color:#ddd;text-align:center;padding:7px 0 2px;line-height:1.2}.case-page{padding:162px var(--pad) 90px;max-width:1600px;margin:auto}.case-heading{padding:0 0 44px}.case-back{display:inline-block;color:var(--muted);font-size:14px;margin-bottom:46px}.case-heading h1{font-size:clamp(44px,7vw,108px);line-height:1.06;letter-spacing:-.06em;margin:18px 0 30px}.case-role h2{font-size:22px;letter-spacing:-.025em;margin:0 0 8px}.case-role p{font-size:17px;color:var(--muted);margin:0}.capture-caption{font-size:12px;color:var(--muted);margin:16px 0 0}.case-story{display:grid;grid-template-columns:1fr 1fr;gap:12%;padding:80px 0}.case-story h2,.case-credits h2{font-size:16px;font-weight:500;margin:0 0 22px}.case-story p,.case-story li{font-size:18px;line-height:1.75;color:var(--muted)}.case-story p{margin:0}.case-story ul{padding-left:20px}.case-gallery{display:grid;grid-template-columns:minmax(0,1fr) 280px;gap:46px;align-items:center}.case-gallery figure{margin:0;min-width:0}.case-gallery img{width:100%;height:auto;border:1px solid #47434b;border-radius:6px}.case-gallery figcaption{font-size:13px;line-height:1.5;color:var(--muted);padding-top:14px}.case-gallery .mobile-detail{max-width:280px}.editorial-gallery{grid-template-columns:1fr 1fr;gap:28px}.case-credits{border-top:1px solid var(--line);margin-top:68px;padding-top:32px;max-width:900px}.case-credits p{font-size:14px;line-height:1.8;color:var(--muted);max-width:760px}.case-credits .text-link{font-size:14px;margin-top:14px}.case-exit{margin-top:70px;border-top:1px solid var(--line);padding-top:44px;display:flex;justify-content:space-between;align-items:center;gap:30px}.next-project{display:grid;grid-template-columns:1fr auto;gap:9px 28px}.next-project>span{grid-column:1/-1;font-size:12px;color:var(--muted)}.next-project strong{font-size:32px;font-weight:500;letter-spacing:-.035em}.next-project b{font-size:30px;font-weight:400}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
@media(max-width:1100px){.site-header>nav{gap:17px}.site-header>nav a{font-size:12px}.realisation-info{grid-template-columns:1fr 1fr}.realisation-info>.text-link{grid-column:2}.case-gallery{gap:24px;grid-template-columns:minmax(0,1fr) 230px}.editorial-gallery{grid-template-columns:1fr 1fr}}
@media(max-width:760px){.realisations-list{gap:62px}.realisation-info{display:block;padding-top:24px}.realisation-info h3{font-size:34px;margin-bottom:22px}.realisation-role h4{font-size:18px}.realisation-role p{font-size:15px}.realisation-info>.text-link{display:inline-flex;margin-top:18px;min-height:44px}.case-showcase{aspect-ratio:1.17}.browser-frame{width:91%;left:4%;top:6%;border-radius:5px}.browser-bar{height:19px;padding:0 7px;font-size:7px}.browser-bar>span:first-child{font-size:5px}.phone-frame{width:34%;right:5%;bottom:6%;border-width:4px;border-radius:14px}.phone-frame img{border-radius:9px}.phone-frame figcaption{font-size:8px;padding:5px 0 1px}.case-page{padding-top:115px;padding-bottom:55px}.case-back{margin-bottom:35px;font-size:13px;min-height:35px}.case-heading{padding-bottom:30px}.case-heading h1{font-size:clamp(38px,11vw,76px);overflow-wrap:normal}.case-role h2{font-size:21px;line-height:1.3}.case-role p{font-size:16px;line-height:1.65}.capture-caption{font-size:11px;line-height:1.7}.case-story{display:block;padding:46px 0}.case-story section+section{margin-top:34px}.case-story h2{margin-bottom:15px}.case-story p,.case-story li{font-size:16px}.case-gallery,.editorial-gallery{display:flex;flex-direction:column;gap:34px;align-items:stretch}.case-gallery .mobile-detail{width:100%;max-width:280px;align-self:center}.case-credits{margin-top:45px}.case-exit{display:block;margin-top:48px}.case-exit .button{margin-top:32px}.next-project strong{font-size:27px}.case-page+.site-footer{gap:20px}}
.realisation{display:flex;flex-direction:column}.realisation-info{order:-1;padding:0 0 28px}
@media(max-width:760px){.realisation-info{padding:0 0 24px}}
@media(min-width:761px){.case-showcase{aspect-ratio:1.85}.browser-frame{width:75%}}

/* Auralith — only the opening demonstration, existing portfolio unchanged. */
.journey .matiere-surface{background:radial-gradient(ellipse at 72% 42%,#3e28462e,transparent 58%),#121315}
.journey .m-brand{letter-spacing:.18em;font-weight:500}.journey .m-brand>span{display:block;font-family:'DM Sans';font-size:.29em;letter-spacing:.22em;margin-top:1em;color:#aaa0b3}
.journey .m-menu{display:flex;justify-content:space-between;white-space:nowrap}.journey .m-menu i{font-style:normal;margin-left:.5em;border:1px solid #746a7e;border-radius:50%;padding:.1em .4em}
.journey .m-title{font-weight:500;letter-spacing:-.057em;line-height:1.12}.journey .m-edition{letter-spacing:.03em;color:#aca2b7}
.journey .m-cta{border-radius:2px;background:#e8e1ec}.journey .m-object:before{content:'';position:absolute;inset:15%;background:radial-gradient(ellipse,#a488c71c,transparent 68%);z-index:-1}
.journey .m-catalog,.journey .m-product,.journey .m-cart{opacity:0;position:absolute}
.collection-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:3%}.collection-heading h3{font-family:Manrope;font-size:2.2em;font-weight:500;letter-spacing:-.04em;margin:0}.collection-heading>span{font-size:.8em;color:#c4b8ce;border-bottom:1px solid #776683;padding:.6em 0}.collection-heading b{margin-left:2em;font-weight:400}
.gem-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:2%}.gem-grid article{min-width:0}.gem-grid article>div{height:var(--gem-height);background:radial-gradient(ellipse at 50% 80%,#67557335,transparent 70%),#1b1a20;border:1px solid #81718a35;border-radius:3px}.gem-grid img{width:100%;height:100%;object-fit:contain}.gem-grid h4{font-family:Manrope;font-size:1.2em;font-weight:500;letter-spacing:-.035em;margin:.9em 0 .4em}.gem-grid p{font-size:.72em;color:#a99daf;display:flex;justify-content:space-between;margin:0}.gem-grid p span{color:#e1d8e6}.collection-foot{border-top:1px solid #63596a70;margin-top:3%;padding-top:2%;display:flex;justify-content:space-between;font-size:.8em;color:#9f94ab}.collection-foot span{color:#e2d8e9}
.m-product small{display:block;font-size:.57em;letter-spacing:.12em;color:#bbabc9;margin-bottom:1.4em}.m-product h3{font-family:Manrope;font-size:2.5em;font-weight:500;letter-spacing:-.055em;line-height:1.12;margin:0 0 .65em}.gem-price{font-size:1.2em;display:flex;align-items:center;justify-content:space-between;margin:0 0 1.6em}.gem-price span{color:#b4a8bd;font-size:.52em}.gem-options{padding:1em 0;border-top:1px solid #65596c70;border-bottom:1px solid #65596c70}.gem-options>span{display:flex;justify-content:space-between;font-size:.7em;color:#a99db4}.gem-options b{font-weight:400;color:#e3dae9}.gem-options>div{display:flex;gap:.65em;margin-top:.9em}.gem-options i{width:1.3em;height:1.3em;border-radius:50%;background:linear-gradient(135deg,#c9b6f1,#4e2167 65%,#b8a2e7);box-shadow:inset 0 0 0 1px #ffffff40}.gem-options i:nth-child(2){background:linear-gradient(135deg,#ecdce6,#784164,#b6a3cd)}.gem-options i:nth-child(3){background:linear-gradient(135deg,#dae6ed,#285680,#a6b5e9)}.gem-options .selected{outline:1px solid #c7b4df;outline-offset:3px}.gem-assurance{font-size:.56em;color:#b3a6be;margin:1.7em 0 0}
.journey .m-cart{z-index:4;background:#211d27f5;border:1px solid #8b749b55;box-shadow:0 22px 80px #0008;border-radius:14px;padding:1.45em;backdrop-filter:blur(18px)}.cart-top{display:flex;justify-content:space-between;font-size:1.3em;letter-spacing:-.035em}.cart-top>span{font-size:.65em;color:#bda4d0}.cart-item{display:flex;align-items:center;gap:.8em;margin:1.5em 0}.cart-item img{width:30%;background:#34283f;border-radius:7px}.cart-item b{font-weight:500;display:block;font-size:1em}.cart-item div>span{display:block;font-size:.68em;color:#a99cb8;margin:.6em 0}.cart-item strong{font-weight:400;font-size:.9em}.cart-total{border-top:1px solid #9e7cb537;padding-top:1em;display:flex;justify-content:space-between;font-size:.85em}.cart-total b{font-weight:400}.cart-confirm{margin-top:1.5em;padding:1em .4em;background:#c9b4df;color:#22162c;border-radius:4px;text-align:center;font-size:.8em}.m-cart>p{font-size:.6em;color:#b2a0c0;text-align:center;margin:1.1em 0 0}
.journey .cadence-surface{background:radial-gradient(ellipse at 75% 30%,#46325135,transparent 65%),#151319;color:#ede7f2}.journey .c-brand{font-weight:500;letter-spacing:-.04em}.journey .c-brand>span{color:#b2a2bf;font-size:.29em}.journey .c-avatar{background:#413249;color:#d9c8e8}.journey .c-title{font-size:32px}.journey .c-title>span{display:block;font-family:'DM Sans';font-size:.35em;letter-spacing:0;color:#aa99b9;margin-top:1em}.journey .c-feature{background:linear-gradient(130deg,#55405f,#302637);border:1px solid #a682bc55;justify-content:center}.journey .c-feature>small{color:#d0bcdf;font-size:.36em}.live-dot{display:inline-block;width:.5em;height:.5em;background:#a7dfc2;border-radius:50%;margin-right:.35em}.journey .c-feature>b{font-size:1.1em;margin:.45em 0 .4em;letter-spacing:-.035em}.journey .c-feature>p{font-size:.4em;color:#d8c9e2;display:flex;justify-content:space-between}.order-client{font-size:.32em;color:#c0a4d3;display:flex;justify-content:space-between;margin:1em 0}.order-status{font-size:.34em;color:#b8ddcb;margin-top:.5em}.journey .c-feature>i{height:.07em;background:linear-gradient(90deg,#ad8cbe 70%,#79618650 70%);margin-top:.8em}.journey .c-tasks h3{font-size:.8em;color:#cab9d6}.journey .c-tasks .task{font-size:.65em;padding:.95em 0;border-color:#aa83c524;line-height:1.4}.journey .c-tasks .task i{border:0;background:#68527738;color:#c3a8d7;display:grid;place-items:center;font-style:normal}.stock-note{display:flex;justify-content:space-between;font-size:.52em;margin:1.2em 0 0;color:#c8ad88;border-top:1px solid #aa83c524;padding-top:1em}.stock-note>span{color:#ab99b9}.journey .c-sidebar{border-color:#987bac26;color:#ab97b9}.journey .c-sidebar>b{background:#58426550;color:#dfc8ed}.journey .c-sidebar small{font-size:.6em;letter-spacing:.06em}
.motion-on .journey{height:620svh}.journey-sticky[data-state="D"] .scene-caption .eyebrow,.journey-sticky[data-state="D"] .skip-experience{color:#c6b6d5}.journey .static-demo-note{position:absolute;bottom:5%;left:8%;font-size:11px;color:#d8cbe4}.journey .static-visual-label{letter-spacing:.15em}.journey .static-visual-label span{max-width:210px;font-size:26px;line-height:1.2}
.narrative-surface[data-compact="true"] .gem-grid{grid-template-columns:1fr 1fr;gap:5%}.narrative-surface[data-compact="true"] .gem-grid article:last-child{display:none}.narrative-surface[data-compact="true"] .collection-heading{display:block;margin-bottom:8%}.narrative-surface[data-compact="true"] .collection-heading>span{display:inline-block;margin-top:1em}.narrative-surface[data-compact="true"] .gem-grid p{display:block;line-height:1.6}.narrative-surface[data-compact="true"] .gem-grid p span{display:block}.narrative-surface[data-compact="true"] .collection-foot{display:block;line-height:1.9;margin-top:9%;padding-top:5%}.narrative-surface[data-compact="true"] .collection-foot span{display:block}.narrative-surface[data-compact="true"] .m-product h3{font-size:1.8em;margin-bottom:.4em}.narrative-surface[data-compact="true"] .m-product small{margin-bottom:.9em}.narrative-surface[data-compact="true"] .gem-price{font-size:1em;margin-bottom:.7em}.narrative-surface[data-compact="true"] .gem-options{padding:.6em 0}.narrative-surface[data-compact="true"] .gem-options>div{margin-top:.6em}.narrative-surface[data-compact="true"] .gem-assurance{margin-top:.8em}
@media(max-width:700px){.motion-on .journey{height:580svh}.journey .static-demo-note{font-size:8px}.journey .static-visual-label span{font-size:20px;max-width:180px}.motion-on .scene-caption .eyebrow{font-size:10px}}

.journey .collection-heading{margin-bottom:1.5%}.journey .gem-grid h4{font-size:1.1em;margin:.6em 0 .3em}
.journey .static-visual img{object-fit:contain;background:radial-gradient(ellipse,#66437730,transparent 70%)}
@media(max-width:700px){html:not(.motion-on) .journey{min-height:0}html:not(.motion-on) .journey-sticky{height:auto;min-height:0;display:flex;flex-direction:column;padding:130px 23px 45px}html:not(.motion-on) .journey .hero-copy{position:relative;top:auto;left:auto;width:100%;max-width:none}html:not(.motion-on) .journey .static-visual{position:relative;order:2;top:auto;right:auto;transform:none;width:100%;margin-top:40px;border-radius:8px;padding:70px 5px 35px}html:not(.motion-on) .journey .static-visual-label{top:22px;left:22px;font-size:14px}html:not(.motion-on) .journey .static-visual-label span{display:none}html:not(.motion-on) .journey .static-demo-note{left:20px;right:20px;bottom:20px;font-size:10px;line-height:1.6}html:not(.motion-on) .journey .static-visual img{aspect-ratio:1.3}html:not(.motion-on) .journey .scroll-hint{display:none}}

.journey .static-visual img{width:100%;height:auto}

/* Signature opening — scoped to this sequence. */
.motion-on .journey{height:820svh}.journey .m-brand{font-family:'DM Sans';color:#b5a9c2;line-height:1.35;font-weight:400}.journey .m-menu{justify-content:flex-end;color:#c4b7d0}.journey .m-menu .cart-link{white-space:nowrap}.journey .m-title{line-height:1.1}.journey .m-edition{display:none}.journey .collection-heading{align-items:center;gap:30px}.journey .collection-heading h3{font-size:2em;line-height:1.1}.journey .filter{position:relative;min-width:8em;z-index:5;font-size:.75em}.journey .filter-trigger{display:flex;justify-content:space-between;gap:2em;border-bottom:1px solid #93809f75;padding:.65em 0}.journey .filter-options{position:absolute;top:100%;right:-.7em;width:12em;background:#28212ef5;border:1px solid #9f82b346;border-radius:6px;padding:.45em;box-shadow:0 15px 35px #0008;opacity:0}.journey .filter-options>span{display:flex;justify-content:space-between;padding:.7em}.journey .spectral-option{background:#78599040;border-radius:3px}.journey .spectral-option i{font-style:normal;color:#ceb5e0}.journey .gem-grid article{transform-origin:50% 30%;will-change:transform}.journey .gem-grid article>div{position:relative;overflow:hidden}.journey .gem-grid article:first-child>div:after{content:'';position:absolute;inset:-10%;background:linear-gradient(110deg,transparent 35%,#e9daf855 50%,transparent 65%);opacity:var(--sweep,0);transform:translateX(var(--sweep-x,-100%));pointer-events:none}.journey .m-cart{background:#241d2cf5}.journey .cart-confirm{display:flex;justify-content:space-between;align-items:center;gap:.5em}.journey .cart-item strong{font-size:.9em}.journey .c-feature{position:absolute;z-index:6;margin:0;pointer-events:none}.journey .c-feature>i{overflow:hidden;background:#9680ac35}.journey .c-feature>i>span{display:block;width:100%;height:100%;background:linear-gradient(90deg,#9b7cb7,#e1c2ef);transform-origin:left;transform:scaleX(0)}.journey .c-feature>small{display:flex;gap:.35em;align-items:center}.journey .live-dot{flex-shrink:0}.journey .order-client,.journey .order-status{will-change:opacity}.journey .c-tasks .task i{transform-origin:center}.journey .stock-count{display:inline-block;font-weight:400;color:#e1d2ec;min-width:.6em}.journey .stock-note>.stock-alert{color:#c8ad88}.journey .c-brand>span{line-height:1.6;max-width:100%;font-size:.24em;margin-top:.8em}.journey .c-title{line-height:1.12}.journey .demo-cursor{position:absolute;z-index:12;pointer-events:none;transform-origin:0 0;width:1em;height:1.3em;opacity:0;filter:drop-shadow(0 2px 3px #0008)}.journey .demo-cursor svg{width:100%;height:100%;overflow:visible}.journey .demo-cursor path{fill:#f3eaf9;stroke:#392743;stroke-width:1.2;stroke-linejoin:round}.journey .demo-cursor>i{position:absolute;left:-.45em;top:-.45em;border:1px solid #ecd4ff;border-radius:50%;width:1em;height:1em;opacity:var(--click,0);transform:scale(calc(1 + var(--click,0)*.6))}.journey .mini-loader{display:inline-block;width:1em;height:1em;border:1px solid #49385544;border-top-color:#38223f;border-radius:50%;animation:signature-spin .75s linear infinite}.journey .sequence-finale{position:absolute;inset:0;z-index:3;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:120px 25px 70px;pointer-events:none;visibility:hidden;background:transparent}.journey .sequence-finale h2{font-size:clamp(45px,6.4vw,94px);line-height:1.1;letter-spacing:-.055em;max-width:1000px;opacity:0;margin:0}.journey .sequence-finale p{font-size:17px;line-height:1.8;max-width:650px;color:#bfb2ca;margin:28px 0;opacity:0}.journey .sequence-finale small{font-size:11px;color:#86788e;position:absolute;bottom:42px;opacity:0}.journey .system-chain{position:absolute;bottom:12%;display:flex;justify-content:center;align-items:center;gap:23px;font-size:11px;letter-spacing:.12em;color:#cdb4df;opacity:0}.journey .system-chain i{font-style:normal;color:#7f6693}.motion-on .journey .live-dot{animation:signature-breathe 4s ease-in-out infinite}.motion-on .journey .m-cta{overflow:hidden;position:absolute}.motion-on .journey .m-cta:after{content:'';position:absolute;inset:0;background:linear-gradient(110deg,transparent 20%,#fff7 50%,transparent 80%);transform:translateX(-130%);animation:signature-glint 9s ease-in-out infinite;pointer-events:none}.journey .c-sidebar{gap:22px}.journey .static-visual-label{letter-spacing:.02em}
@keyframes signature-breathe{0%,100%{box-shadow:0 0 0 0 #a7dfc200;opacity:.8}50%{box-shadow:0 0 0 .35em #a7dfc214;opacity:1}}@keyframes signature-glint{0%,50%{transform:translateX(-130%)}85%,100%{transform:translateX(130%)}}@keyframes signature-spin{to{transform:rotate(360deg)}}
@media(max-width:700px){.motion-on .journey{height:760svh}.journey .sequence-finale h2{font-size:50px;max-width:340px}.journey .sequence-finale p{font-size:15px;max-width:320px}.journey .system-chain{gap:10px;font-size:9px;letter-spacing:.05em;max-width:330px;flex-wrap:wrap;bottom:14%}.journey .hero-copy .eyebrow{font-size:9px;letter-spacing:.02em}.journey .narrative-surface[data-compact="true"] .collection-heading h3{font-size:1.9em}.journey .narrative-surface[data-compact="true"] .filter{margin-top:1.2em;width:100%}.journey .narrative-surface[data-compact="true"] .filter-options{width:100%;right:0}.journey .narrative-surface[data-compact="true"] .collection-heading{margin-bottom:7%}}
@media(prefers-reduced-motion:reduce){.journey *,.journey *:before,.journey *:after{animation:none!important}}
html:not(.motion-on) .journey .sequence-finale{display:none}
/* Rhythm pass: +24.15% active scroll; scoped workstation presentation. */
.motion-on .journey{height:993.91svh}.journey .studio-monitor{display:none;position:absolute;z-index:1;pointer-events:none;transform-origin:0 0;opacity:0}.motion-on .journey .studio-monitor{display:block}.journey .monitor-rim{position:absolute;inset:-7px;border-radius:12px;background:linear-gradient(120deg,#aaa2b4,#29282f 18%,#756a84 50%,#c1b7cc 75%,#39353f);box-shadow:0 28px 60px #0009,0 0 0 1px #ac98c139;opacity:var(--frame,0)}.journey .monitor-rim:after{content:'';position:absolute;inset:3px;background:#090a0c;border-radius:9px}.journey .monitor-neck{position:absolute;left:calc(50% - 37px);top:calc(100% + 3px);width:74px;height:77px;clip-path:polygon(27% 0,73% 0,94% 100%,6% 100%);background:linear-gradient(90deg,#42404a,#9c96a6 43%,#696571 51%,#2e2c35);filter:drop-shadow(0 4px 4px #0006)}.journey .monitor-base{position:absolute;left:calc(50% - 114px);top:calc(100% + 73px);width:228px;height:12px;border-radius:50% 50% 4px 4px;background:linear-gradient(#b8afc4,#64606c 48%,#2b2830);box-shadow:0 3px 0 #0d0d11,0 13px 22px #0008;transform:perspective(300px) rotateX(15deg)}.journey .monitor-shadow{position:absolute;left:calc(50% - 220px);top:calc(100% + 73px);width:440px;height:35px;background:radial-gradient(ellipse,#0009,transparent 70%);filter:blur(5px);z-index:-1}.journey .studio-monitor+.sequence-finale .system-chain{bottom:8%}.journey .c-feature>p{font-size:.45em}.journey .order-client{font-size:.37em}.journey .order-status{font-size:.4em}.journey .c-tasks .task{font-size:.72em}.journey .stock-note{font-size:.60em;flex-wrap:wrap;gap:8px}.journey .c-brand>span{font-size:.36em}.journey .c-feature>small{font-size:.4em}
@media(max-width:700px){.motion-on .journey{height:919.42svh}.journey .monitor-neck{height:55px;width:56px;left:calc(50% - 28px)}.journey .monitor-base{top:calc(100% + 51px);width:156px;left:calc(50% - 78px)}.journey .monitor-shadow{top:calc(100% + 48px);width:250px;left:calc(50% - 125px)}}

.journey .stock-count{height:1.25em;width:.9em;overflow:hidden;vertical-align:middle;font-size:1.3em;line-height:1.25em;text-align:center}.journey .stock-reel{display:block;will-change:transform}.journey .stock-reel>span{display:block;height:1.25em;line-height:1.25em}

/* Home consolidation: scoped presentation, native scroll, no additional renderer. */
.motion-on .journey{height:1099.677svh}
@media(max-width:700px){.motion-on .journey{height:1023.87svh}}
.motion-on .sequence-finale:before{content:'';position:absolute;inset:10% 8%;z-index:-1;background:radial-gradient(ellipse at 32% 48%,#7860801b,transparent 48%),radial-gradient(ellipse at 68% 55%,#55727412,transparent 50%);animation:home-breath 10s ease-in-out infinite alternate}
@keyframes home-breath{from{transform:translate3d(-1%,1%,0) scale(.97);opacity:.5}to{transform:translate3d(1%,-1%,0) scale(1.03);opacity:1}}
.home-realisations{padding-bottom:55px;overflow:hidden;background:linear-gradient(#101112,#121315 55%,#101112);position:relative}
.home-realisations>.section-heading{margin-bottom:45px}.home-realisations>.section-heading h2{font-size:clamp(54px,6.6vw,100px);font-weight:500}.home-projects{max-width:1550px;margin:auto}
.home-project{display:grid;grid-template-columns:1.42fr 1fr;align-items:center;gap:7%;position:relative;min-height:630px;margin:0 0 45px;padding:45px 0 70px}
.home-project:nth-child(even){grid-template-columns:1fr 1.42fr}.home-project:nth-child(even) .device-link{grid-column:2;grid-row:1}.home-project:nth-child(even) .home-project-copy{grid-column:1;grid-row:1;padding-left:7%}
.home-project:after{content:'';position:absolute;bottom:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,#fff1,transparent)}
.home-project-copy{position:relative;z-index:3;max-width:435px;padding:0 0 0 3%}.project-ordinal{display:flex;align-items:center;gap:17px;font-size:11px;color:var(--project-tint);letter-spacing:.06em;margin:0 0 28px}.project-ordinal span{color:#85868b;font-size:10px;letter-spacing:.09em;text-transform:uppercase}
.home-project-copy h3{font:500 clamp(35px,3.2vw,52px)/1.15 Manrope,sans-serif;letter-spacing:-.055em;margin:0 0 25px;max-width:420px}.home-project-role{color:var(--project-tint);font-size:12px;line-height:1.6;margin:0 0 18px}.home-project-intro{color:#a5a4ad;font-size:16px;line-height:1.8;max-width:345px;margin:0 0 30px}.home-project-copy>.text-link{font-size:12px;gap:30px;padding-bottom:10px;border-bottom:1px solid #77717e55}
.device-link{display:block;min-width:0;outline-offset:8px}.device-stage{position:relative;isolation:isolate;aspect-ratio:1.26;perspective:1600px;--device-yaw:7deg;--device-roll:-2deg;--screen-y:0px;--mobile-y:0px}
.device-aura{position:absolute;inset:15% -15% 0;background:radial-gradient(ellipse,color-mix(in srgb,var(--project-tint) 17%,transparent),transparent 63%);filter:blur(30px);opacity:.7;pointer-events:none}
.desktop-object{position:absolute;width:94%;left:-1%;top:12%;transform:translate3d(0,var(--device-lift,0px),0) rotateY(var(--device-yaw)) rotateX(3deg) rotateZ(var(--device-roll));transform-style:preserve-3d;transition:filter .4s;will-change:transform}
.desktop-edge{padding:7px 7px 12px;background:linear-gradient(130deg,#55545a,#111215 20%,#282a2f 75%,#605b66);border:1px solid #b4a9bf48;border-radius:12px;position:relative;box-shadow:0 35px 55px #0009,5px 2px 0 #18191c,6px 2px 0 #99909e33}
.desktop-edge:after{content:'';position:absolute;inset:0;pointer-events:none;border-radius:11px;background:linear-gradient(125deg,#ffffff0b,transparent 32%,#e7d9ed05 62%,transparent 68%);border-top:1px solid #d9c9e359}.device-camera{position:absolute;top:1px;left:50%;width:3px;height:3px;background:#0a0a0b;border-radius:50%}
.device-viewport{position:relative;overflow:hidden;background:#18191b;isolation:isolate}.desktop-viewport{aspect-ratio:1.66;border-radius:5px}.device-viewport img{width:100%;height:auto;max-width:none;display:block;will-change:transform;transform:translate3d(0,var(--screen-y,0px),0)}
.device-support{position:absolute;top:calc(100% - 1px);height:15%;width:13%;left:43.5%;background:linear-gradient(95deg,#26252b,#89868d 50%,#3a383f);clip-path:polygon(25% 0,75% 0,96% 100%,4% 100%);z-index:-1}.device-foot{position:absolute;top:114%;height:2.3%;width:33%;left:33.5%;border-radius:70% 70% 4px 4px;background:linear-gradient(#9a959f,#5c5861 60%,#25232a);box-shadow:0 20px 27px #0009}
.mobile-object{position:absolute;width:23%;aspect-ratio:.475;right:-1%;top:34%;border-radius:24px;padding:5px;background:linear-gradient(140deg,#79737f,#222227 30%,#97909f 75%,#28272c);box-shadow:0 26px 38px #000a,3px 1px 0 #07080a;border:1px solid #aaa0b858;transform:translate3d(0,var(--phone-lift,0px),45px) rotateY(-9deg) rotateZ(6deg);z-index:3;will-change:transform}
.mobile-object .device-viewport{height:100%;border-radius:19px}.mobile-object img{transform:translate3d(0,var(--mobile-y,0px),0)}.mobile-object>i{position:absolute;top:9px;left:36%;right:36%;height:8px;border-radius:8px;background:#090a0c;box-shadow:0 1px 2px #0004}
.device-caption{position:absolute;bottom:2%;left:7%;right:25%;display:flex;justify-content:space-between;font-size:9px;letter-spacing:.1em;text-transform:uppercase;color:#77757d}
.stage-laptop{--device-yaw:-7deg;--device-roll:2deg}.stage-laptop .desktop-object{left:4%;width:91%;top:16%}.stage-laptop .desktop-edge{padding:7px 7px 10px;border-radius:10px 10px 2px 2px}.stage-laptop .device-support{display:none}.stage-laptop .device-foot{top:100%;left:-5%;width:110%;height:4%;clip-path:polygon(4% 0,96% 0,100% 68%,98% 100%,2% 100%,0 68%);border-radius:3px;background:linear-gradient(#77747e,#47434d 60%,#a5a0aa 70%,#3c3941 95%)}.stage-laptop .mobile-object{top:41%;right:0;transform:translate3d(0,var(--phone-lift,0px),45px) rotateY(-12deg) rotateZ(-4deg)}
.stage-panorama{aspect-ratio:1.35;--device-yaw:5deg;--device-roll:-3deg}.stage-panorama .desktop-object{width:104%;left:-4%;top:17%}.stage-panorama .desktop-viewport{aspect-ratio:1.95}.stage-panorama .device-support,.stage-panorama .device-foot{display:none}.stage-panorama .mobile-object{width:21%;right:-2%;top:39%;transform:translate3d(0,var(--phone-lift,0px),45px) rotateY(-10deg) rotateZ(9deg)}
.project-miss-samui .device-stage{--device-yaw:-6deg;--device-roll:1deg}.project-miss-samui .mobile-object{right:3%;top:40%;transform:translate3d(0,var(--phone-lift,0px),45px) rotateY(8deg) rotateZ(-5deg)}.project-binocle .device-stage{--device-yaw:8deg;--device-roll:-2deg}.project-binocle .desktop-object{top:8%}.project-binocle .mobile-object{top:30%}.device-link:hover .desktop-object{filter:brightness(1.035)}
/* Testimonials: semantic HTML and a progressively enhanced depth composition. */
.testimonials-section{position:relative;background:#101213;--reviews-p:0}.testimonials-sticky{position:relative;overflow:hidden;isolation:isolate;padding:90px var(--pad)}
.reviews-heading{position:relative;z-index:5;max-width:780px}.reviews-heading>.eyebrow{font-size:10px;color:#95929f;letter-spacing:.12em;margin:0 0 20px}.reviews-heading h2{font:500 clamp(42px,4.7vw,70px)/1.07 Manrope,sans-serif;letter-spacing:-.055em;margin:0}.reviews-heading h2>span{color:#aaa0b5}.reviews-heading>p:last-child{font-size:14px;line-height:1.7;color:#96939f;margin:20px 0 0}
.reviews-halo{position:absolute;inset:0;z-index:-2;background:radial-gradient(ellipse at 18% 50%,#546e651d,transparent 45%),radial-gradient(ellipse at 82% 65%,#7b568323,transparent 47%);pointer-events:none}.canopy-lines{position:absolute;inset:0;width:100%;height:100%;z-index:-1;opacity:.4;pointer-events:none}.canopy-lines path{stroke:url(#vine);fill:none;stroke-width:.7;vector-effect:non-scaling-stroke}.canopy-lines path:nth-of-type(3n){stroke-width:2.5;filter:blur(3px);opacity:.55}
.reviews-space{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;margin:55px 0}.review-card{margin:0;background:linear-gradient(135deg,#252a2bf2,#1b1c23f5);border:1px solid #9b8fad2e;border-radius:10px;padding:28px;box-shadow:0 25px 55px #0003}.review-card blockquote{margin:0;color:#dddce1;font-size:18px;line-height:1.65;font-weight:400}.review-card figcaption{display:flex;gap:14px;justify-content:space-between;align-items:center;margin-top:25px;color:#a9a6b0;font-size:10px}.review-card figcaption>span:last-child{color:#7c7889;font-size:9px;white-space:nowrap}.review-featured{border-color:#bfa6cf50;background:linear-gradient(125deg,#292a31f5,#222329f5)}
.reviews-footer{display:flex;justify-content:space-between;align-items:center;gap:20px;position:relative;z-index:6;color:#89848f;font-size:10px}.reviews-footer>.text-link{font-size:11px;gap:22px}
.home-motion .testimonials-section{height:540svh}.home-motion .testimonials-sticky{position:sticky;top:0;height:100svh;padding-top:128px;padding-bottom:40px}.home-motion .reviews-heading h2{font-size:clamp(38px,4.1vw,61px)}.home-motion .reviews-heading>p:last-child{margin-top:16px}.home-motion .reviews-space{position:absolute;inset:0;display:block;perspective:1300px;perspective-origin:50% 60%;margin:0;pointer-events:none;contain:layout style}
.home-motion .review-card{position:absolute;left:50%;top:58%;width:340px;opacity:0;will-change:transform,opacity;transform-origin:center}.home-motion .review-featured{width:min(580px,55vw);padding:42px 45px;z-index:4;border-radius:12px;background:linear-gradient(125deg,#2a2c33fa,#25232dfc);box-shadow:0 40px 95px #0008,0 0 65px #a483bf09}.home-motion .review-featured blockquote{font-family:Manrope,sans-serif;font-size:clamp(23px,2.25vw,34px);line-height:1.45;letter-spacing:-.028em}.home-motion .review-featured figcaption{margin-top:30px;font-size:12px}.home-motion .review-featured figcaption>span:last-child{font-size:10px;color:#9d93a9}.home-motion .review-distant{padding:25px;z-index:2}.home-motion .review-distant blockquote{font-size:18px;line-height:1.5}.home-motion .review-distant figcaption{font-size:11px}.home-motion .reviews-footer{position:absolute;left:var(--pad);right:var(--pad);bottom:38px}.home-motion .reviews-halo{animation:home-breath 13s ease-in-out infinite alternate}
/* Real portrait, only an editorial crop and restrained CSS grading. */
.contact-editorial{grid-template-columns:.85fr 1fr;gap:11%;align-items:center;max-width:1200px;margin:auto}.theo-portrait{position:relative;margin:0;width:100%;max-width:420px}.portrait-window{aspect-ratio:.84;overflow:hidden;border-radius:3px;position:relative;border:1px solid #c2b0cf38;background:#292e2c;box-shadow:0 35px 75px #0005}.portrait-window img{width:100%;height:100%;display:block;object-fit:cover;object-position:50% 45%;filter:brightness(.84) contrast(1.04) saturate(.82);transform:scale(1.03) translateY(var(--portrait-y,0px))}.portrait-window:after{content:'';position:absolute;inset:0;background:linear-gradient(transparent 65%,#15191a38);pointer-events:none}.theo-portrait figcaption{display:flex;justify-content:space-between;gap:20px;margin-top:20px;font-size:12px;color:#c1b9ca}.theo-portrait figcaption>span:last-child{font-size:10px;color:#837e8c;align-self:center}.contact-editorial .contact-copy>h2{font-size:clamp(46px,5.1vw,77px);margin:0 0 25px;line-height:1.14}.contact-editorial .contact-copy>.contact-intro{font-size:16px;line-height:1.8;color:#afa6b9;max-width:460px;margin:0 0 35px}.contact-editorial .contact-details{padding-top:0}.contact-editorial .contact-details>summary{max-width:270px}
.home-case>.device-stage{max-width:1050px;margin:40px auto 60px;width:90%}.home-case .device-caption{bottom:0}.home-case .device-viewport img{transform:none}.home-case:has(.stage-laptop)>.device-stage{aspect-ratio:1.4}
@media(min-width:1550px){.home-project{min-height:700px}}
@media(max-width:1000px) and (min-width:701px){.home-project{gap:5%;min-height:510px}.home-project-copy h3{font-size:34px}.home-project-intro{font-size:14px}.home-project-copy,.home-project:nth-child(even) .home-project-copy{padding-left:0}.project-ordinal{gap:8px}.project-ordinal span{font-size:8px}.mobile-object{border-radius:19px}.mobile-object .device-viewport{border-radius:14px}.contact-editorial{gap:7%}}
@media(max-width:700px){
 .home-realisations{padding-top:70px;padding-bottom:25px}.home-realisations>.section-heading{gap:20px;margin-bottom:25px}.home-realisations>.section-heading h2{font-size:48px}.home-realisations>.section-heading>p{font-size:14px;max-width:280px}.home-realisations .section-note{display:none}
 .home-project,.home-project:nth-child(even){display:flex;flex-direction:column;align-items:stretch;gap:5px;padding:12px 0 38px;margin-bottom:34px;min-height:0}.home-project .home-project-copy,.home-project:nth-child(even) .home-project-copy{padding:0;max-width:none}.home-project-copy h3{font-size:32px;margin-bottom:18px;max-width:320px}.project-ordinal{margin-bottom:18px}.project-ordinal span{font-size:9px}.home-project-role{font-size:11px;margin-bottom:13px}.home-project-intro{font-size:14px;line-height:1.7;max-width:350px;margin-bottom:22px}.home-project-copy>.text-link{font-size:11px}
 .device-stage,.stage-panorama{aspect-ratio:1.32;perspective:1100px}.desktop-object,.stage-laptop .desktop-object,.stage-panorama .desktop-object{width:96%;left:2%;top:7%}.desktop-edge{padding:5px 5px 8px;border-radius:9px}.desktop-viewport{border-radius:4px}.mobile-object{display:none}.device-stage{--device-yaw:3deg;--device-roll:-1deg}.device-caption{left:5%;right:5%;bottom:4%;font-size:8px}.stage-laptop .device-caption,.stage-panorama .device-caption{bottom:9%}
 .reviews-space{grid-template-columns:1fr;gap:16px;margin:35px 0}.testimonials-sticky{padding:65px var(--pad)}.reviews-heading h2{font-size:38px}.reviews-heading>p:last-child{font-size:12px}.reviews-footer{flex-direction:column;align-items:flex-start;gap:17px;font-size:9px}.review-card{padding:25px}.review-card blockquote{font-size:18px}
 .home-motion .testimonials-section{height:500svh}.home-motion .testimonials-sticky{padding-top:115px}.home-motion .reviews-heading h2{font-size:36px}.home-motion .reviews-heading>.eyebrow{font-size:8px;margin-bottom:18px}.home-motion .reviews-heading>p:last-child{font-size:12px;max-width:260px}.home-motion .review-card{width:260px;top:59%}.home-motion .review-featured{width:calc(100vw - 44px);padding:28px;max-width:400px}.home-motion .review-featured blockquote{font-size:24px;line-height:1.45}.home-motion .review-featured figcaption{font-size:11px;gap:8px;margin-top:26px}.home-motion .review-featured figcaption>span:last-child{font-size:8px}.home-motion .review-distant{padding:20px}.home-motion .review-distant blockquote{font-size:15px}.home-motion .reviews-footer{bottom:27px}.canopy-lines{opacity:.32}
 .contact-editorial{display:flex;flex-direction:column;gap:48px;align-items:stretch}.theo-portrait{max-width:370px;width:100%}.portrait-window{aspect-ratio:.94}.theo-portrait figcaption{margin-top:16px;font-size:11px}.theo-portrait figcaption>span:last-child{font-size:9px}.contact-editorial .contact-copy>h2{font-size:46px}.contact-editorial .contact-copy>.contact-intro{font-size:14px;line-height:1.8;margin-bottom:26px}.contact-section{padding-bottom:70px}.home-case>.device-stage{width:100%;margin:30px auto}.home-case .device-stage{aspect-ratio:1.22}.home-case .case-heading h1{font-size:45px}
}
@media(prefers-reduced-motion:reduce){.home-realisations *,.testimonials-section *,.contact-editorial *,.sequence-finale:before{animation:none!important;transition:none!important}.desktop-object,.mobile-object,.portrait-window img{transform:none!important}.device-viewport img{transform:none!important}.project-playpark .desktop-viewport img{transform:translateY(-22%)!important}}
html:not(.home-motion) .desktop-object{transform:rotateY(0) rotateZ(0)}html:not(.home-motion) .mobile-object{transform:none}html:not(.home-motion) .device-viewport img{will-change:auto}html:not(.home-motion) .project-playpark .desktop-viewport img{transform:translateY(-22%)}
/* Switching motion off restores every review and media to ordinary document flow. */
html:not(.home-motion) .review-card{opacity:1!important;transform:none!important;filter:none!important;will-change:auto}
html:not(.home-motion) .device-viewport img{transform:none}
html:not(.home-motion) .portrait-window img{transform:none}
html:not(.home-motion) .reviews-halo,html:not(.motion-on) .sequence-finale:before{animation:none}
.home-motion .reviews-heading:before{content:'';position:absolute;inset:-35px -45px -35px calc(-1 * var(--pad));z-index:-1;background:radial-gradient(ellipse at 35% 45%,#101213ed 10%,#101213ba 48%,transparent 76%);pointer-events:none}
.home-case .stage-laptop:has(img[src*="playpark"]) .desktop-viewport img{transform:translateY(-25%)}
.home-case .stage-laptop:has(img[src*="playpark"]) .mobile-viewport img{transform:translateY(-20%)}
.home-case{overflow:hidden}

/* Consolidation only: space, testimonial traversal, handoff, portrait size. */
.home-project{min-height:550px;padding-top:20px;padding-bottom:40px;margin-bottom:20px}
.home-realisations{padding-bottom:40px}.home-realisations>.section-heading{margin-bottom:30px}
@media(min-width:1550px){.home-project{min-height:620px}}
@media(max-width:1000px) and (min-width:701px){.home-project{min-height:455px}}
.theo-portrait{max-width:470px}
/* Three readable voices. The other verified extracts are decorative depth layers. */
.reviews-heading{max-width:none}.reviews-proof{position:absolute;right:7%;top:25px;display:flex;align-items:center;gap:20px;padding-left:26px;border-left:1px solid #9b8fad40;color:#beb2ca}
.reviews-proof strong{font:500 76px/1 Manrope,sans-serif;letter-spacing:-.065em}.reviews-proof>span{font-size:14px;line-height:1.6}.reviews-proof small{display:block;font-size:10px;color:#8f8997;margin-top:5px}
.reviews-space{grid-template-columns:repeat(3,minmax(0,1fr))}.review-distant{display:none}
.home-motion .testimonials-section{height:430svh;overflow-x:clip;overflow-y:visible}
.home-motion .testimonials-sticky{overflow:visible;isolation:auto}
.home-motion .reviews-space{overflow:hidden;perspective:1100px;perspective-origin:50% 58%;isolation:isolate}
.home-motion .review-card{will-change:auto}.home-motion .review-distant{display:block;width:290px;padding:21px;box-shadow:0 12px 32px #0002;background:linear-gradient(135deg,#282c2fe8,#211f29ed);z-index:1}
.home-motion .review-distant blockquote{font-size:19px;line-height:1.5}.home-motion .review-distant figcaption{margin-top:16px;font-size:12px;color:#96909f}.home-motion .review-featured{z-index:5}
.home-motion .reviews-heading{opacity:calc(1 - var(--reviews-exit,0));transform:translateY(calc(var(--reviews-exit,0) * -18px))}.home-motion .reviews-heading:before{right:0;background:linear-gradient(180deg,#101213eb,transparent 100%)}
.home-motion .reviews-halo{z-index:0;animation-play-state:paused;opacity:calc(1 - var(--reviews-exit,0)*.8)}.home-motion .reviews-active .reviews-halo{animation-play-state:running}
.home-motion .canopy-lines{overflow:visible;z-index:2;opacity:calc(.43 * var(--bridge-opacity,1));transform:none!important}
.home-motion .reviews-footer{z-index:6}.home-motion .reviews-footer>span{opacity:calc(1 - var(--reviews-exit,0))}
.home-motion #expertises{position:relative;z-index:1}
html:not(.home-motion) .reviews-proof{position:relative;right:auto;top:auto;border-left:0;padding:0;margin:28px 0}
html:not(.home-motion) .review-featured{visibility:visible!important}.review-distant{pointer-events:none}
@media(max-width:1000px) and (min-width:701px){.reviews-proof{right:0;gap:12px;padding-left:18px}.reviews-proof strong{font-size:60px}.reviews-proof>span{font-size:12px}.home-motion .reviews-heading h2{font-size:44px;max-width:480px}}
@media(max-width:700px){
 .home-realisations{padding-top:60px;padding-bottom:25px}.home-realisations>.section-heading{margin-bottom:20px}
 .home-project,.home-project:nth-child(even){min-height:0;padding:8px 0 12px;margin-bottom:12px}
 .project-ordinal{margin-bottom:14px}.home-project-copy h3{margin-bottom:16px}.home-project-role{margin-bottom:11px}.home-project-intro{margin-bottom:18px}
 .theo-portrait{max-width:370px}.portrait-window{aspect-ratio:.84}
 .home-motion .testimonials-section{height:400svh}
 .reviews-proof,.home-motion .reviews-proof{position:relative;top:auto;right:auto;border:0;padding:0;gap:14px;margin:0 0 20px}.reviews-proof strong{font-size:45px}.reviews-proof>span{font-size:13px;line-height:1.3}.reviews-proof small{font-size:10px;margin-top:3px}
 .home-motion .reviews-heading>.eyebrow{margin-bottom:17px}.home-motion .reviews-heading h2{font-size:34px}.home-motion .reviews-heading>p:last-child{display:none}
 .home-motion .review-card{top:60%}.home-motion .review-featured{padding:27px}.home-motion .review-featured blockquote{font-size:23px}.home-motion .review-featured figcaption{font-size:12px}.home-motion .review-featured figcaption>span:last-child{font-size:10px}
 .home-motion .review-distant{width:265px;padding:21px}.home-motion .review-distant blockquote{font-size:19px}.home-motion .review-distant figcaption{font-size:12px}
 .reviews-space{grid-template-columns:1fr}.home-motion .reviews-footer>.text-link{font-size:12px}
 html:not(.home-motion) .reviews-proof{margin:22px 0}
}
@media(prefers-reduced-motion:reduce){.testimonials-section .canopy-lines{display:none}.testimonials-section .reviews-halo{animation:none}.review-distant{display:none!important}}
.home-motion .reviews-space{z-index:3;mask-image:linear-gradient(transparent 13%,#000 38%,#000 86%,transparent 99%)}
html:not(.home-motion) .testimonials-section .canopy-lines{display:none}

/* Creative consolidation: one continuous canopy-to-services handoff. */
.home-motion .testimonials-section{height:380svh}
.home-motion .reviews-space{mask-image:linear-gradient(transparent 12%,#000 34%,#000 88%,transparent 100%)}
.home-motion .review-distant{background:linear-gradient(135deg,#2c2c35e8,#22252be8);box-shadow:none}
.home-motion .reviews-halo{transform:scale(calc(1 - var(--halo-tighten,0)*.27));opacity:calc(1 - var(--halo-tighten,0)*.95);animation:none}
.home-motion .canopy-lines{opacity:calc(.58 * var(--bridge-opacity,1))}
.home-motion .reviews-footer{opacity:calc(1 - var(--reviews-exit,0));transform:translateY(calc(var(--reviews-exit,0)*-30px))}
.home-motion #expertises{margin-top:-100svh;z-index:4;background:transparent;position:relative}
.home-motion #expertises>.section-top{border-color:rgb(255 255 255 / calc(.14 * var(--service-rows,1)))}
.home-motion #expertises>.section-top>.eyebrow{opacity:var(--service-reveal,1)}
.home-motion #expertises>.section-heading{opacity:var(--service-reveal,1);transform:translateY(calc(20px - var(--service-reveal,1)*20px))}
.home-motion #expertises .capability-list,.home-motion #expertises .services-followup{opacity:var(--service-rows,1)}

/* Four editorial service presentations; a single shared SVG, no extra canvas. */
#expertises .capability-list summary{grid-template-columns:45px minmax(250px,1fr) minmax(260px,1fr) 64px;gap:28px;min-height:102px}
#expertises .capability-list summary>p{font-size:15px;max-width:430px}
#expertises .capability-list details{position:relative;transition:border-color .35s}
#expertises .capability-list details:hover{border-color:#a999bc68}
#expertises .capability-list details[open]{border-color:#b3a0c77a}
#expertises .capability-list summary:focus-visible{outline:1px solid #c3b5d2;outline-offset:6px;border-radius:2px}
#expertises .capability-list .service-toggle{width:64px;height:55px;display:grid;place-items:center;transition:transform .65s cubic-bezier(.2,.7,.2,1);transform:rotate(-7deg);perspective:200px}
.service-stone{width:39px;height:44px;display:block;position:relative;animation:service-float 8s ease-in-out infinite;animation-play-state:paused}
.service-stone img{width:100%;height:100%;display:block;filter:drop-shadow(0 4px 7px #9871b12c)}
.service-stone:after{content:'';position:absolute;inset:0;clip-path:polygon(39% 5%,78% 16%,93% 44%,76% 81%,44% 95%,12% 71%,7% 37%);background:linear-gradient(115deg,transparent 23%,#ddf9ff85 37%,transparent 49%);background-size:350% 100%;animation:service-glint 12s ease-in-out infinite;animation-play-state:paused;mix-blend-mode:screen;opacity:.6;pointer-events:none}
.services-active .service-stone,.services-active .service-stone:after{animation-play-state:running}
#expertises details:nth-child(2) .service-stone{animation-delay:-2s}#expertises details:nth-child(3) .service-stone{animation-delay:-4s}#expertises details:nth-child(4) .service-stone{animation-delay:-6s}
#expertises .capability-list summary:hover .service-toggle{transform:rotate(9deg) scale(1.13)}
#expertises .capability-list summary:hover .service-stone:after{animation-duration:1.4s;animation-iteration-count:1;animation-fill-mode:forwards}
#expertises .capability-list details[open]:not(.is-closing) .service-toggle{transform:rotate(58deg) scale(1.08)}
#expertises .capability-body{padding:9px 92px 40px 73px;max-width:none;color:#bbb5c4;font-size:17px;line-height:1.8}
#expertises .service-copy{display:grid;grid-template-columns:1fr 1fr;gap:55px;max-width:1100px}
#expertises .service-copy p{margin:0;max-width:520px}
#expertises .service-keywords{font-size:12px;letter-spacing:.015em;color:#a79ab7;line-height:2.1;margin:28px 0 0;padding-top:19px;border-top:1px solid #9a86b024;max-width:1100px}
@keyframes service-float{0%,100%{transform:translateY(1px) rotate(-3deg)}50%{transform:translateY(-2px) rotate(4deg)}}
@keyframes service-glint{0%,24%{background-position:100% 50%;opacity:.15}44%{opacity:.65}64%,100%{background-position:0% 50%;opacity:.15}}
@media(max-width:1000px){
 #expertises .capability-list summary{grid-template-columns:35px 1fr 54px;gap:8px 20px}
 #expertises .capability-list .service-toggle{grid-column:3;grid-row:1/3;width:54px}
 #expertises .capability-body{padding-left:55px;padding-right:20px;font-size:16px}
 #expertises .service-copy{gap:30px}
}
@media(max-width:700px){
 .home-motion .testimonials-section{height:350svh}
 .home-motion #expertises{margin-top:-90svh}
 #expertises .capability-list summary{grid-template-columns:24px minmax(0,1fr) 40px;gap:8px 12px;padding:25px 0}
 #expertises .capability-list summary h3{font-size:22px}
 #expertises .capability-list summary>p{font-size:14px}
 #expertises .capability-list .service-toggle{width:40px;height:43px;align-self:start;margin-top:1px}
 #expertises .service-stone{width:31px;height:35px}
 #expertises .capability-body{padding:5px 0 30px 36px;font-size:15px;line-height:1.85}
 #expertises .service-copy{display:block}#expertises .service-copy p+p{margin-top:17px}
 #expertises .service-keywords{font-size:12px;margin-top:20px;padding-top:14px;line-height:2}
}
html:not(.home-motion) #expertises{margin-top:0}

/* Final editorial polish. Signature, reviews and page background retain their styles. */
.services-title-stage{position:relative}
.services-title-stage .section-heading h2{font-size:clamp(42px,4.7vw,72px);line-height:1.12;transform-origin:left center}
.home-motion .services-arrival{height:calc(300px + 24svh);position:relative}
.home-motion .services-title-stage{position:sticky;top:128px}
.home-motion .services-title-stage>.section-top{border-color:rgb(255 255 255 / calc(.14 * var(--service-rows,1)))}
.home-motion .services-title-stage>.section-top>.eyebrow{opacity:var(--service-reveal,1)}
.home-motion .services-title-stage>.section-heading{margin-bottom:0;perspective:1100px}
.home-motion .services-title-stage h2{opacity:calc(.25 + var(--service-reveal,1)*.75);transform:translate3d(0,calc(32px - var(--service-reveal,1)*32px),calc(-190px + var(--service-reveal,1)*190px)) rotateX(calc(9deg - var(--service-reveal,1)*9deg))}
.home-motion .services-active .services-title-stage h2{will-change:transform}

#approche{padding-top:135px;padding-bottom:135px}
#approche .method-layout{grid-template-columns:1.12fr .88fr;gap:9%;align-items:center;min-height:445px}
#approche .method-intro{perspective:1100px}
#approche .method-intro h2{font-size:clamp(43px,4.65vw,71px);line-height:1.09;margin:0;transform-origin:left center}
#approche .method-intro>p{margin:30px 0 0;max-width:420px}
#approche .method-steps{position:relative;padding-left:26px}
#approche .method-steps:before{content:'';position:absolute;left:0;top:6px;bottom:24px;width:1px;background:linear-gradient(#adc3cf55,#ba9cc388,#8f81902b);transform-origin:top}
#approche .method-steps h3{font-size:25px;margin-top:0}
#approche .method-steps>li{padding:31px 0;gap:24px}#approche .method-steps>li:first-child{padding-top:0}
.home-motion #approche .method-intro h2{opacity:calc(.35 + var(--method-enter,1)*.65);transform:translate3d(0,calc(42px - var(--method-enter,1)*42px),calc(-100px + var(--method-enter,1)*100px)) rotateX(calc(5deg - var(--method-enter,1)*5deg))}
.home-motion #approche .method-intro>p{opacity:calc(.3 + var(--method-enter,1)*.7);transform:translateY(calc(20px - var(--method-enter,1)*20px))}
.home-motion #approche .method-steps:before{transform:scaleY(var(--method-enter,1))}
.home-motion #approche .method-steps>li{opacity:calc(.3 + var(--step-enter,1)*.7);transform:translateX(calc(24px - var(--step-enter,1)*24px))}

/* 250 px instead of 470 px: the real portrait supports the final call to action. */
.contact-section{padding-top:120px;padding-bottom:125px;min-height:76svh}
.contact-editorial{grid-template-columns:250px minmax(0,1fr);max-width:1040px;gap:110px;align-items:center;perspective:1200px}
.theo-portrait{max-width:250px;isolation:isolate;align-self:start;margin-top:28px}
.theo-portrait:before{content:'';position:absolute;inset:-12px -15px 32px;z-index:-1;pointer-events:none;background:conic-gradient(from 35deg,#7dacc12a,#c68bb635,#756c9d2a,#a0c6c32b,#7dacc12a);filter:blur(21px);opacity:.55;border-radius:24%}
.portrait-window{border-top-color:#cbaad443;border-right-color:#92bdc938;border-bottom-color:#9a8aad3b;box-shadow:0 22px 55px #0004}
.theo-portrait figcaption{gap:12px;font-size:12px;margin-top:17px;line-height:1.5;flex-wrap:wrap}
.theo-portrait figcaption>span:last-child{font-size:10px}
.contact-editorial .contact-copy>h2{font-size:clamp(49px,5.05vw,75px);line-height:1.1;transform-origin:left center}
.contact-editorial .contact-copy>.contact-intro{max-width:470px}
.contact-editorial .contact-details>summary{box-shadow:0 8px 35px #b38cc515}
.home-motion .theo-portrait{animation:portrait-float 13s ease-in-out infinite;animation-play-state:paused}
.home-motion .theo-portrait:before{animation:portrait-aura 13s ease-in-out infinite;animation-play-state:paused}
.home-motion .contact-in-view .theo-portrait,.home-motion .contact-in-view .theo-portrait:before{animation-play-state:running}
.home-motion .contact-editorial .contact-copy>h2{opacity:calc(.45 + var(--contact-enter,1)*.55);transform:translate3d(0,calc(30px - var(--contact-enter,1)*30px),calc(-85px + var(--contact-enter,1)*85px))}
.home-motion .contact-editorial .contact-intro{opacity:calc(.4 + var(--contact-enter,1)*.6);transform:translateY(calc(18px - var(--contact-enter,1)*18px))}
.home-motion .contact-editorial .contact-details{opacity:calc(.55 + var(--contact-enter,1)*.45);transform:translateY(calc(12px - var(--contact-enter,1)*12px))}
@keyframes portrait-float{0%,100%{transform:translateY(1px)}50%{transform:translateY(-3px)}}
@keyframes portrait-aura{0%,100%{opacity:.45;transform:scale(.98)}50%{opacity:.72;transform:scale(1.025)}}
@media(max-width:1000px){
 .contact-editorial{grid-template-columns:230px minmax(0,1fr);gap:8%}
 #approche .method-layout{gap:6%}#approche .method-intro h2{font-size:48px}
 #approche .method-steps h3{font-size:23px}
}
@media(max-width:700px){
 .services-title-stage .section-heading h2{font-size:39px;line-height:1.13}
 .home-motion .services-arrival{height:calc(240px + 16svh)}
 .home-motion .services-title-stage{top:103px}
 #approche{padding-top:85px;padding-bottom:85px}
 #approche .method-layout{display:flex;flex-direction:column;align-items:stretch;gap:50px;min-height:0}
 #approche .method-intro h2{font-size:43px;line-height:1.12}
 #approche .method-intro>p{margin-top:25px}
 #approche .method-steps{padding-left:19px}#approche .method-steps>li{gap:20px;padding:25px 0}
 .home-motion #approche .method-steps>li{transform:translateX(calc(16px - var(--step-enter,1)*16px))}
 .contact-section{padding-top:75px;padding-bottom:80px;min-height:0}
 .contact-editorial{display:flex;flex-direction:column;gap:42px;align-items:stretch}
 .theo-portrait{width:230px;max-width:76vw;margin-left:0;margin-top:0}
 .contact-editorial .contact-copy>h2{font-size:47px;line-height:1.12}
 .theo-portrait:before{inset:-8px -10px 35px;filter:blur(16px)}
 .home-motion .services-title-stage h2{transform:translate3d(0,calc(20px - var(--service-reveal,1)*20px),calc(-75px + var(--service-reveal,1)*75px)) rotateX(calc(4deg - var(--service-reveal,1)*4deg))}
}
html:not(.home-motion) .services-arrival{height:auto}
html:not(.home-motion) .services-title-stage{position:relative;top:auto}
@media(prefers-reduced-motion:reduce){.theo-portrait,.theo-portrait:before{animation:none!important}.services-title-stage h2{will-change:auto}}
html.motion-reduced .service-stone,html.motion-reduced .service-stone:after{animation:none!important}
@media(prefers-reduced-motion:reduce){
 #expertises .service-stone,#expertises .service-stone:after{animation:none!important}
 #expertises .service-toggle,#expertises .capability-list details{transition:none!important}
}

/* Narrative polish: one adjective at a time, in the previous slide's scroll budget. */
.unique-lead{display:block;white-space:nowrap;font-size:.91em;line-height:1.2}
.unique-window{display:block;height:1.2em;overflow:hidden;line-height:1.2;perspective:650px;margin-top:.04em;color:#dbcee7}
.unique-reel{display:block;will-change:transform}
.unique-reel>span{display:block;height:1.2em;line-height:1.2;background:linear-gradient(110deg,#eee7f5 8%,#c9b5dd 42%,#aacbd6 92%);background-clip:text;-webkit-background-clip:text;color:transparent}

/* Four distinct placements, not a global fade. Rows keep their real flow and hit targets. */
.home-motion #expertises .capability-list{opacity:1;perspective:1100px;position:relative}
.home-motion #expertises .capability-list>details{opacity:calc(.035 + var(--assembled,1)*.965);transform-origin:50% 100%;transform:translate3d(0,calc(92px - var(--assembled,1)*92px),calc(-135px + var(--assembled,1)*135px)) rotateX(calc(9deg - var(--assembled,1)*9deg));border-color:rgb(193 175 209 / calc(.08 + var(--assembled,1)*.10))}
.home-motion #expertises .capability-list>details:focus-within,.home-motion #expertises .capability-list>details[open]{opacity:1;transform:none}

/* A single iridescent gesture links the headline to the three delivery steps. */
#approche{position:relative;isolation:isolate;overflow:clip}
.method-streak{position:absolute;left:0;top:118px;width:100%;height:450px;pointer-events:none;z-index:0;opacity:0;overflow:visible}
.home-motion .method-streak{opacity:var(--streak-opacity,0)}
.streak-trail,.streak-bloom{fill:none;stroke:url(#streak-light);stroke-linecap:round}.streak-trail{stroke-width:1.8}.streak-bloom{stroke-width:8;filter:blur(4px);opacity:.35}
.streak-head{fill:#cfe9f1;filter:drop-shadow(0 0 5px #d9acd8)}
.streak-core{fill:#fff5fc}
#approche .method-layout,#approche>.section-top{position:relative;z-index:1}
#approche .method-steps:before{background:linear-gradient(#b8d2dc88,#ba9cc388,#8f81902b)}

/* A centered final statement, with a compact portrait and conversation beneath it. */
.contact-section{padding-top:60px;padding-bottom:40px;min-height:0}
.contact-editorial{display:grid;grid-template-columns:196px minmax(0,1fr);max-width:820px;gap:43px 66px;align-items:center}
.contact-title{grid-column:1/-1;text-align:center;font-size:clamp(52px,6vw,86px)!important;line-height:1.05!important;letter-spacing:-.065em;margin:0 0 8px!important;transform-origin:center!important}
.contact-title>span{color:#ada0bd}
.theo-portrait{width:196px;max-width:100%;align-self:center;justify-self:center;margin:0}
.portrait-window{aspect-ratio:.88;border-radius:4px}
.theo-portrait figcaption{display:block;text-align:center;font-size:12px;line-height:1.6;margin-top:14px}
.theo-portrait figcaption>span{display:block}.theo-portrait figcaption>span:last-child{font-size:10px;margin-top:3px}
.contact-copy{min-width:0}
.contact-editorial .contact-copy>.contact-intro{max-width:475px;font-size:17px;line-height:1.8;margin-bottom:29px}
.contact-editorial .contact-details>summary{min-height:59px;max-width:260px;padding:18px 24px}
.contact-editorial .contact-details[open]{width:100%}
.contact-editorial:has(.contact-details[open]) .theo-portrait{align-self:start;margin-top:6px}
.home-motion .contact-title{opacity:calc(.5 + var(--contact-enter,1)*.5);transform:translateY(calc(23px - var(--contact-enter,1)*23px))}
@media(max-width:1000px) and (min-width:701px){.contact-editorial{max-width:750px;grid-template-columns:185px minmax(0,1fr);gap:35px 50px}}
@media(max-width:700px){
 .unique-lead{font-size:.91em}
 .home-motion #expertises .capability-list>details{transform:translateY(calc(45px - var(--assembled,1)*45px));opacity:calc(.10 + var(--assembled,1)*.90)}
 .method-streak{top:100px;height:330px;opacity:calc(var(--streak-opacity,0)*.7)}
 .contact-section{padding-top:65px;padding-bottom:65px}
 .contact-editorial{display:flex;flex-direction:column;gap:27px;align-items:center}
 .contact-title{font-size:48px!important;line-height:1.1!important;margin:0 0 3px!important}
 .theo-portrait{width:172px;max-width:60vw;margin:0}
 .portrait-window{aspect-ratio:.94}
 .contact-copy{text-align:center;width:100%}
 .contact-editorial .contact-copy>.contact-intro{font-size:15px;line-height:1.75;max-width:340px;margin:0 auto 25px}
 .contact-editorial .contact-details>summary{margin:auto}
 .contact-form-content{text-align:left}
 .contact-editorial:has(.contact-details[open]) .theo-portrait{align-self:center;margin:0}
}
html:not(.home-motion) .method-streak{display:none}
@media(prefers-reduced-motion:reduce){.method-streak{display:none}.unique-reel{will-change:auto}}

/* Final art direction. Shared palette, native scroll, no new timeline or WebGL layer. */
body:before{content:'';position:fixed;inset:0;z-index:1;pointer-events:none;background-image:url('./graphite-grain.svg'),radial-gradient(ellipse at 13% 28%,#a092c806,transparent 48%),radial-gradient(ellipse at 87% 70%,#a2cbd405,transparent 45%);opacity:.55}
.unique-lead{font-size:.77em;line-height:1.25;letter-spacing:-.045em;color:#ece9ef}
.unique-window{height:1.23em;line-height:1.23;margin-top:.17em;overflow:clip}
.unique-reel>span{height:1.23em;line-height:1.23;position:relative;background:none;color:#ddcee9}
.kinetic-letters{position:relative;z-index:2;display:block;white-space:nowrap}
.kinetic-letters i{font-style:normal;display:inline-block;color:#ddcee9;transform-origin:50% 75%}
.word-memorable:before,.word-memorable:after{content:attr(data-word);position:absolute;inset:0;pointer-events:none;opacity:calc(var(--echo,0)*.44);color:#d49bce;transform:translate(calc(var(--echo-distance,0px)*-1),calc(var(--echo-distance,0px)*.35));filter:blur(.6px)}
.word-memorable:after{color:#94c9d5;transform:translate(var(--echo-distance,0px),calc(var(--echo-distance,0px)*-.3));opacity:calc(var(--echo,0)*.32)}
.static-visual-label small{display:block;font-size:11px;letter-spacing:.04em;margin-top:12px;color:#baacc8}

/* Project lighting changes the atmosphere only. Geometry and image travel stay untouched. */
.home-project{--project-ambient:#c9b0e4;--ambient-alpha:.06}
.project-lucas-bauer{--project-ambient:#e5ccb0;--ambient-alpha:.052}.project-playpark{--project-ambient:#cab075;--ambient-alpha:.055}.project-machine-arriere{--project-ambient:#a75948;--ambient-alpha:.045}.project-miss-samui{--project-ambient:#67c6c1;--ambient-alpha:.05}.project-binocle{--project-ambient:#cf95c0;--ambient-alpha:.07}
.home-project:before{content:'';position:absolute;inset:4% -4%;pointer-events:none;background:radial-gradient(ellipse at 45% 52%,var(--project-ambient),transparent 64%);opacity:calc(var(--ambient-alpha) * var(--project-light,.6));z-index:0}
.home-project .desktop-edge:after{background:linear-gradient(115deg,transparent 30%,#c9b4e71b 43%,#b6dadd22 47%,transparent 58%);background-size:230% 100%;background-position:var(--edge-light,0%) 50%}

.site-header>nav{position:relative}
.nav-indicator{position:absolute;bottom:-12px;left:0;width:28px;height:1px;background:linear-gradient(90deg,#a9bad4,#c7a7d4,#abced5);box-shadow:0 0 7px #b9aed433;opacity:0;transition:transform .48s cubic-bezier(.2,.7,.2,1),width .48s,opacity .3s;pointer-events:none}

.canopy-seed{fill:#d1b9e8;stroke:#bce1e8;stroke-width:.7;opacity:0;filter:drop-shadow(0 0 5px #a9a5d755)}
.canopy-lines path{stroke:url(#vine)}
.canopy-seed path{fill:#ceb6e4;stroke:#ccdfed;stroke-width:.7;filter:none!important}
#continuity-filament{position:fixed;inset:0;width:100%;height:100%;z-index:6;pointer-events:none;overflow:hidden;opacity:0;contain:strict}
.filament-trace,.filament-tail,.filament-bloom{stroke:url(#filament-spectrum);fill:none;stroke-linecap:round;vector-effect:non-scaling-stroke}
.filament-trace{stroke-width:.7;opacity:.14}.filament-tail{stroke-width:1.5;opacity:.88}.filament-bloom{stroke-width:5;opacity:.22;filter:blur(2.5px)}
.filament-tip{fill:#ddedf5;filter:drop-shadow(0 0 5px #c6a7e485)}.filament-tip circle{fill:#faf2fb}

/* Dock each fragment, give the separator one restrained pulse. */
.home-motion #expertises .capability-list>details{transform:translate3d(0,calc(103px - var(--assembled,1)*103px),calc(-160px + var(--assembled,1)*160px)) rotateX(calc(10deg - var(--assembled,1)*10deg));border-color:rgb(193 175 209 / calc(.08 + var(--assembled,1)*.10 + var(--lock,0)*.3))}
.capability-list>details:after{content:'';position:absolute;bottom:-1px;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,#afc9d6 28%,#d0acd9 63%,transparent);opacity:calc(var(--lock,0)*.8);transform:scaleX(calc(.86 + var(--assembled,1)*.14));pointer-events:none}
.capability-list>details:before{content:'';position:absolute;bottom:-1px;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent 20%,#c3a7dd99 48%,#bedce999 52%,transparent 78%);background-size:240% 100%;background-position:100% 0;opacity:0;pointer-events:none}
.capability-list>details:has(summary:hover):before{animation:separator-wave 1.1s ease-out both}
@keyframes separator-wave{0%{background-position:100% 0;opacity:0}20%{opacity:.7}100%{background-position:0 0;opacity:0}}
.home-motion #expertises .service-toggle{opacity:var(--assembled,1);translate:calc(12px - var(--assembled,1)*12px) calc(-6px + var(--assembled,1)*6px)}
#expertises .capability-list summary:hover .service-toggle{transform:translateZ(5px) rotate(5deg) scale(1.07)}
#expertises .capability-list details[open]:not(.is-closing) .service-toggle{transform:rotate(83deg) scale(1.06)}
#expertises .capability-list>details:last-child .service-stone{opacity:calc(1 - var(--fragment-depart,0)*.5)}
@keyframes service-float{0%,100%{transform:translateY(1px) rotate(-2deg)}50%{transform:translateY(-1.5px) rotate(2deg)}}

/* Four phases in the same editorial space; the filament visits their left-hand nodes. */
#approche .method-layout{min-height:445px;align-items:center}
#approche .method-intro h2{font-size:clamp(41px,4.3vw,66px);line-height:1.1}
.method-after{display:block!important;color:#c8b5d8!important;margin-top:.08em}
.home-motion .method-after{opacity:var(--after-enter,1);transform:translateY(calc(12px - var(--after-enter,1)*12px))}
#approche .method-steps{padding-left:27px}
#approche .method-steps>li{position:relative;padding:21px 0;gap:24px;opacity:1}
#approche .method-steps>li:first-child{padding-top:0}
#approche .method-steps h3{font-size:24px;transition:color .15s;text-shadow:0 0 calc(var(--step-energy,0)*16px) #c1a7d02b;color:color-mix(in srgb,#e9e7ea, #e0c3f1 calc(var(--step-energy,0)*55%))}
#approche .method-steps>li:after{content:'';position:absolute;left:-29px;top:35px;width:4px;height:4px;border-radius:50%;background:#b3cbd7;box-shadow:0 0 calc(3px + var(--step-energy,0)*9px) #c9a6dc;opacity:calc(.14 + var(--step-energy,0)*.86)}
#approche .method-steps>li:first-child:after{top:14px}
#approche .method-steps p{line-height:1.7;margin-top:11px}

/* Compact centered close: the route skirts the real photo, then becomes the CTA underline. */
.contact-editorial{grid-template-columns:180px minmax(0,1fr);max-width:780px;gap:38px 58px}
.theo-portrait{width:180px}
.portrait-window{aspect-ratio:.86;border-color:#b8b7c91c;box-shadow:0 20px 45px #0004}
.theo-portrait:before{opacity:calc(.28 + var(--portrait-energy,0)*.25)}
.portrait-window:before{content:'';position:absolute;inset:-1px;z-index:2;pointer-events:none;background:linear-gradient(90deg,#bcacd066,transparent) top left/32% 1px no-repeat,linear-gradient(#a9cddd88,transparent) top left/1px 22% no-repeat,linear-gradient(90deg,transparent,#cbacdb66) bottom right/26% 1px no-repeat;opacity:calc(.15 + var(--portrait-energy,0)*.65)}
.contact-editorial .contact-copy>.contact-intro{font-size:16px;line-height:1.8;margin-bottom:28px}
.contact-details>summary{position:relative;translate:var(--mag-x,0px) var(--mag-y,0px);transition:translate .22s ease-out}
.contact-details>summary>span{transition:transform .3s}
.contact-details>summary:hover>span{transform:rotate(10deg)}
.contact-details>summary:after{content:'';position:absolute;left:12px;right:12px;bottom:-7px;height:1px;background:linear-gradient(90deg,#b5c9db,#d0aedc,#aacbd8);transform:scaleX(var(--cta-energy,0));transform-origin:left;opacity:.65}
@media(max-width:700px){
 .nav-indicator{display:none}
 .word-memorable:after{display:none}
 .home-motion #expertises .capability-list>details{transform:translateY(calc(43px - var(--assembled,1)*43px))}
 .filament-tail{stroke-width:1.1}.filament-bloom{display:none}.filament-trace{opacity:.10}
 #approche .method-intro h2{font-size:40px}
 #approche .method-steps>li{padding:20px 0}
 #approche .method-steps h3{font-size:23px}
 #approche .method-steps>li:after{left:-16px;top:34px}
 #approche .method-steps>li:first-child:after{top:14px}
 .contact-editorial{display:flex;gap:25px}
 .theo-portrait{width:170px}
 .contact-editorial .contact-copy>.contact-intro{font-size:15px}
 .contact-details>summary{translate:none;transition:none}
}
html:not(.home-motion) #continuity-filament{display:none}
html:not(.home-motion) .method-after{opacity:1;transform:none}
html:not(.home-motion) .contact-details>summary{translate:none}
html:not(.home-motion) .canopy-seed{display:none}
@media(prefers-reduced-motion:reduce){
 #continuity-filament,.canopy-seed{display:none!important}
 .nav-indicator,.contact-details>summary,.contact-details>summary>span{transition:none}
 .capability-list>details:before{animation:none!important}
 .contact-details>summary{translate:none!important}
}

/* Final expertise pass: horizontal glyph bleed, with the vertical word aperture intact. */
.unique-window{padding-inline:.24em;margin-inline:-.24em;overflow:hidden;overflow:clip;clip-path:none}
.unique-reel,.kinetic-word,.kinetic-letters{overflow:visible}

/* Recover the old footer void for four compact demonstrations; no added scroll scene. */
@media(min-width:701px){
 #expertises{padding-bottom:24px}
 #expertises .services-followup{margin:15px 0 0;font-size:14px}
 .home-motion #expertises .services-arrival{height:calc(255px + 24svh)}
}
#expertises .capability-list summary{grid-template-columns:36px minmax(280px,1fr) minmax(260px,320px) 56px;gap:26px;min-height:163px;padding:16px 0;align-items:center}
#expertises .capability-list summary>.service-number{grid-column:1;grid-row:1;align-self:center;padding:0;min-width:0;font-size:12px}
#expertises .capability-list summary>.service-overview{grid-column:2;grid-row:1;min-width:0;color:inherit;font:inherit}
#expertises .service-overview h3{font-size:25px;line-height:1.3;margin:0 0 9px;max-width:none}
#expertises .service-overview p{font-size:14px;line-height:1.6;max-width:490px;margin:0;color:#aba5b3;display:block;width:auto}
#expertises .capability-list summary>.service-toggle{grid-column:4;grid-row:1;align-self:center;width:56px;min-width:0}
#expertises .capability-list summary>.micro-scene{grid-column:3;grid-row:1;display:block;position:relative;width:100%;height:130px;min-width:0;isolation:isolate;overflow:visible;font:10px/1.35 inherit;letter-spacing:0;color:#b5aabd;contain:layout style;pointer-events:none;--action:1;--one:1;--two:1;--three:1;--four:1}
.micro-scene *{box-sizing:border-box}
.micro-scene b,.micro-scene strong{font-weight:500}
.micro-scene small{font-size:9px}
.micro-caption{display:block;font-size:8px;letter-spacing:.14em;color:#85818d;line-height:1.2;position:absolute;left:0;top:0}
.micro-top{display:flex;justify-content:space-between;align-items:center;font-size:9px;color:#a8a1b3}
.micro-top b{font-size:9px;color:#ccc4d7}
.shop-window{position:absolute;top:19px;right:12px;width:calc(280px - var(--two)*32px);height:108px;padding:10px 13px;border:1px solid #b7a6cf33;border-radius:5px;background:linear-gradient(130deg,#25232a,#18191e);box-shadow:0 13px 26px #0003;transform:perspective(600px) rotateY(calc(-6deg + var(--two)*6deg));transform-origin:right center}
.shop-product{display:flex;align-items:center;gap:28px;margin-top:9px}
.shop-product>img{height:62px;width:57px;object-fit:contain;transform:translateY(calc(6px - var(--one)*6px)) rotate(calc(-12deg + var(--one)*12deg));opacity:calc(.2 + var(--one)*.8);filter:drop-shadow(0 5px 14px #ab8ac936)}
.shop-info{display:block;flex:1;min-width:0}.shop-info>b{display:block;color:#ece5f3;font-size:11px}.shop-info>small{display:block;margin-top:3px;color:#948b9f}
.shop-cta{display:flex;align-items:center;justify-content:space-between;padding:5px 8px;margin-top:9px;background:color-mix(in srgb,#292530,#a694bc calc(var(--three)*30%));border:1px solid #bca4d03b;border-radius:2px;color:#ded1ec;font-size:9px;transform:scale(calc(1 - var(--press,0)*.035))}
.shop-check{opacity:var(--four)}.cart-count{color:#dec8eb;font-weight:500}
.app-phone{position:absolute;top:18px;left:23px;width:106px;height:111px;border:1px solid #a9a5bb50;border-radius:10px;background:linear-gradient(125deg,#292830,#17191e);padding:17px 10px 10px;transform:rotate(calc(-5deg + var(--one)*5deg));box-shadow:0 10px 25px #0003}
.phone-speaker{position:absolute;top:5px;left:43px;width:18px;height:2px;background:#08090a;border-radius:3px}.app-phone>small{color:#928aa1}.app-phone>b{display:block;font-size:9px;color:#d9d2e3;margin-top:4px}.app-status{display:block;color:#b6cfd0;font-size:8px;margin-top:9px}.app-track{display:block;height:2px;margin-top:6px;background:#403945;overflow:hidden}.app-track>span{display:block;height:100%;background:linear-gradient(90deg,#b298d0,#aec9d6);transform:scaleX(var(--action));transform-origin:left}
.app-mini-lines{display:block;height:8px;margin-top:7px;background:repeating-linear-gradient(0deg,#a79db522 0 1px,transparent 1px 5px)}
.app-dashboard{position:absolute;left:137px;right:0;top:33px;padding:9px;border:1px solid #a294b331;border-radius:4px;background:#202027;transform:translateX(calc(13px - var(--two)*13px));opacity:calc(.18 + var(--two)*.82)}
.status-dot{display:inline-block;width:3px;height:3px;background:#b3d9c6;border-radius:50%;box-shadow:0 0 5px #9cd3be55}
.app-board{display:grid;grid-template-columns:1fr 1fr 1fr;gap:5px;margin-top:10px}.app-board>span{font-size:6.5px;white-space:nowrap;color:#aaa0b7}.app-board>span>span{display:block;height:8px;margin-top:4px;background:#a89bb414;border-radius:1px}.app-board .app-ticket{background:#b8a5d433;color:#cbdedc;opacity:var(--four);text-align:center}
.app-sync{display:block;font-size:7px;margin-top:10px;color:#a6a0b1}.app-sync>span{float:right;color:#bfdfd1;opacity:var(--four)}
.micro-data{--one:1;--two:1;--three:1;--four:1}.data-links{position:absolute;left:0;top:27px;width:100%;height:118px;overflow:visible;fill:none;stroke-width:1}.data-base{stroke:#afa0bc23}.data-current{stroke:url(#micro-flow);stroke-dasharray:1;stroke-dashoffset:calc(1 - var(--action));opacity:.85}
.data-source,.data-table,.data-crm,.data-output{position:absolute;border:1px solid #b6a7c930;border-radius:4px;background:#211f28;padding:7px 6px}
.data-source{left:0;top:47px;width:82px;height:68px;overflow:hidden}.data-source>b,.data-table>b,.data-crm>b{display:block;font-size:8px;letter-spacing:.04em;color:#cdc2da}.data-source>span:not(.data-scanner){display:block;font-size:8px;line-height:1.7;color:#9b91a9;transform:translateY(calc(-3px * var(--one)))}
.data-scanner{position:absolute;left:0;right:0;top:calc(15px + var(--one)*48px);height:1px;background:linear-gradient(90deg,transparent,#cbaadd,transparent);box-shadow:0 0 10px #b895d944;opacity:calc(1 - var(--one)*.8)}
.data-table{left:34%;top:47px;width:61px;height:65px;opacity:calc(.25 + var(--two)*.75);transform:translateY(calc(4px - var(--two)*4px))}.data-table>b{font-size:7px}.data-table>span{display:block;height:5px;margin-top:7px;background:linear-gradient(90deg,#b4a1ca66 25%,transparent 25% 33%,#aaa0b735 33% 75%,transparent 75% 83%,#b4c7ca55 83%)}
.data-crm{left:61%;top:47px;width:44px;height:55px;text-align:center}.data-person{display:block;color:#b5a1c9;font-size:10px;margin:7px 0 0;opacity:var(--three);transform:translateX(calc(-13px + var(--three)*13px))}.data-person>span{display:inline-block;width:12px;height:1px;background:#a3afb6;margin-left:3px;vertical-align:middle}.data-crm>small{position:absolute;right:-4px;bottom:-5px;color:#b4dbc5;opacity:var(--three)}
.data-output{right:0;top:39px;font-size:7px;letter-spacing:.03em;width:53px;padding:6px 4px;color:#c1b4d0;opacity:calc(.25 + var(--four)*.75)}.data-output.sms{top:94px}.data-output>b{color:#aed3c6;float:right;opacity:var(--four)}
.seo-panel{position:absolute;top:19px;left:16px;right:0;border:1px solid #b4a8c335;border-radius:4px;background:linear-gradient(110deg,#24222b,#191b20);padding:9px 12px 7px}.seo-index{font-size:8px;color:#a5c9b9;opacity:calc(.25 + var(--one)*.75)}
.seo-chart{display:block;margin:8px 0 5px;height:35px}.seo-chart svg{width:100%;height:100%;overflow:visible;fill:none}.seo-grid{stroke:#a599bb15;stroke-width:.5}.seo-line{stroke:#b6aed9;stroke-width:1.7;stroke-dasharray:1;stroke-dashoffset:calc(1 - var(--three));stroke-linecap:round}.seo-signal{fill:#c4e0e3;opacity:var(--three)}
.seo-metrics{display:grid;grid-template-columns:1fr 1fr 1fr;gap:16px}.seo-metrics>span{font-size:8px;color:#b1a5c0}.seo-metrics>span>span{display:block;height:2px;background:linear-gradient(90deg,#b09cc9,#9dc7d1);transform:scaleX(calc(.18 + var(--three)*.74));transform-origin:left;margin-top:4px}.seo-metrics>span:nth-child(2)>span{transform:scaleX(calc(.12 + var(--three)*.63))}.seo-metrics>span:nth-child(3)>span{transform:scaleX(calc(.1 + var(--four)*.6))}
.seo-bottom{display:flex;justify-content:space-between;font-size:7px;color:#8f899b;margin-top:8px}.seo-bottom b{font-weight:400;color:#adccc3;opacity:var(--two)}.seo-bottom .status-dot{opacity:var(--four);margin-right:3px}
.micro-visible .shop-product>img{animation:micro-mineral 8s ease-in-out infinite}.micro-visible .status-dot{animation:micro-status 5s ease-in-out infinite}
@keyframes micro-mineral{0%,100%{translate:0 0;rotate:-1deg}50%{translate:0 -1.5px;rotate:1deg}}
@keyframes micro-status{0%,100%{opacity:.5}50%{opacity:1}}
/* A travelling head only. The path is never accumulated on screen. */
.filament-trace{display:none!important}
#approche .method-after{font-size:.70em;margin-top:.22em;line-height:1.2;background:linear-gradient(100deg,#c9b4d7,#b8c7d1);background-clip:text;-webkit-background-clip:text;color:transparent!important}
#approche .method-steps h3{color:color-mix(in srgb,#aaa4b0,#f3edf7 calc(var(--step-energy,0)*100%))}
#approche .method-steps>li.step-reached h3{color:color-mix(in srgb,#c4bbc9,#f3edf7 calc(var(--step-energy,0)*100%))}
#approche .method-steps>li>div:after{content:'';display:block;width:38px;height:1px;background:linear-gradient(90deg,#b8cdd9,#c8a8d8,transparent);margin-top:12px;transform:scaleX(var(--step-fill,0));transform-origin:left;opacity:.55}
#approche .method-steps>li>div{position:relative}
#approche .method-steps>li>div:after{position:absolute;bottom:-12px;left:0;margin:0}
.theo-portrait:after{content:'';position:absolute;inset:-8px -9px 45px;pointer-events:none;background:linear-gradient(115deg,#bfa3d366,transparent) top left/42px 1px no-repeat,linear-gradient(35deg,transparent,#9acbd266) right top/1px 42px no-repeat,linear-gradient(100deg,transparent,#c6a4c65c) bottom right/37px 1px no-repeat;opacity:.55}
@media(max-width:1000px) and (min-width:701px){
 #expertises .capability-list summary{grid-template-columns:26px minmax(0,1fr) 260px 42px;gap:18px;min-height:163px}
 #expertises .service-overview h3{font-size:22px}#expertises .service-overview p{font-size:13px}
 #expertises .micro-scene{transform:scale(.85);transform-origin:center right}
}
@media(max-width:700px){
 #expertises{padding-bottom:35px}
 #expertises .capability-list summary{grid-template-columns:24px minmax(0,1fr) 40px;gap:8px 12px;padding:22px 0;min-height:0}
 #expertises .capability-list summary>.service-number{align-self:start;padding-top:4px}
 #expertises .capability-list summary>.service-overview{grid-column:2/4;padding-right:34px}
 #expertises .service-overview h3{font-size:22px;margin-bottom:8px}#expertises .service-overview p{font-size:14px;line-height:1.55}
 #expertises .capability-list summary>.service-toggle{grid-column:3;grid-row:1;align-self:start;width:40px;justify-self:end;margin-right:-3px}
 #expertises .capability-list summary>.micro-scene{grid-column:2/4;grid-row:2;width:280px;max-width:100%;height:108px;margin-top:5px;transform:scale(.86);transform-origin:left top;margin-bottom:-15px}
 #expertises .micro-caption{display:none}
 .shop-window{top:4px;right:0}.app-phone{top:0;left:8px}.app-dashboard{top:15px;left:121px}.seo-panel{top:1px;left:0}.micro-data{translate:0 -15px}
 #expertises .services-followup{margin:16px 0 0;font-size:13px}
 #approche .method-after{font-size:.7em}
}
html:not(.home-motion) .micro-scene *,html.motion-reduced .micro-scene *{animation:none!important}
html:not(.home-motion) #approche .method-steps h3{color:#e4ddea}
html:not(.home-motion) #approche .method-steps>li>div:after{transform:none;opacity:.25}
@media(prefers-reduced-motion:reduce){.micro-scene *{animation:none!important}.micro-scene{--one:1!important;--two:1!important;--three:1!important;--four:1!important;--action:1!important}}
/* Readable 2D excerpts on narrow screens: fewer panels, larger interface labels. */
#expertises .capability-list summary>.micro-scene{font-family:inherit;font-size:10px;line-height:1.35}
@media(max-width:700px){
 #expertises .capability-list summary>.micro-scene{transform:none;height:90px;margin-bottom:0}
 .shop-window{top:0;height:87px;width:245px;padding:8px 12px;box-shadow:none;transform:none}
 .shop-product{margin-top:5px;gap:22px}.shop-product>img{width:44px;height:49px}.shop-info>small{display:none}.shop-cta{margin-top:6px;font-size:10px;padding:4px 8px}.micro-top,.micro-top b{font-size:10px}.shop-info>b{font-size:12px}
 .app-phone{width:130px;height:87px;left:0;top:0;border-radius:6px;padding:9px 12px;transform:none;box-shadow:none}.phone-speaker,.app-mini-lines{display:none}.app-phone>small,.app-status{font-size:10px}.app-phone>b{font-size:10px}.app-status{margin-top:8px}
 .app-dashboard{top:12px;left:141px;height:65px;padding:8px}.app-board{display:none}.app-sync{font-size:9px;line-height:1.5;margin-top:9px}.app-dashboard .micro-top>b{font-size:9px}
 .data-source{top:34px;height:36px;width:75px;padding:11px 5px}.data-source>span:not(.data-scanner){display:none}.data-source>b{font-size:9px}.data-scanner{top:calc(3px + var(--one)*30px)}
 .data-table{top:34px;left:30%;width:65px;height:36px;padding:11px 4px}.data-table>b{font-size:9px}.data-table>span{display:none}
 .data-crm{top:34px;left:57%;height:36px;padding:11px 5px}.data-crm>b{font-size:9px}.data-person{display:none}
 .data-output{width:61px;top:23px;padding:7px 4px;font-size:9px}.data-output.sms{top:67px}.data-links{top:12px}
 .seo-panel{top:0;height:88px;padding:8px 10px}.seo-chart{height:26px;margin:4px 0}.seo-metrics>span{font-size:9px}.seo-bottom{display:none}.seo-index{font-size:9px}
}
@media(max-width:700px){
 #expertises .capability-list summary>.service-overview{grid-column:2;padding-right:0}
 .home-motion #expertises .services-arrival{height:calc(150px + 16svh)}
 #approche{padding-top:60px;padding-bottom:60px}
 #approche .method-layout{gap:35px}
 #approche .method-steps>li{padding-top:17px;padding-bottom:17px}
 #approche .method-steps>li:first-child{padding-top:0}
}

/* Idle motion uses the existing four illustrations, with one centre-weighted clock. */
#expertises .capability-list summary>.micro-scene{pointer-events:auto;--ambient-wave:0;--ambient-pulse:0;--ambient-strength:.3}
.micro-scene .shop-product>img,.micro-scene .status-dot{animation:none!important}
.ambient-ready .shop-product>img{translate:0 calc(var(--ambient-wave)*-1.7px);rotate:calc(var(--ambient-wave)*1.2deg)}
.shop-product{position:relative}
.shop-product:after{content:'';position:absolute;left:0;top:0;width:58px;height:62px;pointer-events:none;clip-path:polygon(39% 5%,78% 16%,93% 44%,76% 81%,44% 95%,12% 71%,7% 37%);background:linear-gradient(115deg,transparent 20%,#e0daeb66 48%,transparent 62%);background-size:280% 100%;background-position:calc(var(--ambient-p,0)*100%) 50%;opacity:calc(var(--ambient-pulse)*.55)}
.ambient-ready .shop-window{translate:0 calc(var(--ambient-wave)*.6px)}
.ambient-ready .shop-cta{border-color:rgb(195 171 215 / calc(.2 + var(--ambient-pulse)*.35));box-shadow:0 0 10px rgb(182 164 209 / calc(var(--ambient-pulse)*.055))}
.ambient-ready .cart-count{opacity:calc(.75 + var(--ambient-pulse)*.25)}
.ambient-ready .app-phone{translate:0 calc(var(--ambient-wave)*1.7px)}
.ambient-ready .app-track>span{transform:scaleX(var(--app-progress,1))}
.ambient-ready .app-status{opacity:var(--app-reset,1)}
.ambient-ready .app-board .app-ticket{translate:0 calc(var(--ambient-wave)*-1.5px)}
.ambient-ready .app-board>span>span{opacity:calc(.65 + var(--ambient-pulse)*.35)}
.ambient-ready .status-dot{opacity:calc(.45 + var(--ambient-pulse)*.55);scale:calc(.9 + var(--ambient-pulse)*.2)}
.ambient-ready .data-scanner{top:calc(15px + var(--scan,0)*48px);opacity:calc(var(--ambient-strength)*.9)}
.ambient-ready .data-table>span{transform:scaleX(calc(.3 + var(--data-fill,1)*.7));transform-origin:left;opacity:calc(.6 + var(--data-fill,1)*.4)}
.ambient-ready .data-current{stroke-dasharray:.11 .89;stroke-dashoffset:calc(var(--ambient-p,0)*-1.2);opacity:calc(.3 + var(--ambient-strength)*.6)}
.ambient-ready .data-person{translate:calc(-3px + var(--crm-fill,1)*3px) 0;opacity:calc(.5 + var(--crm-fill,1)*.5)}
.ambient-ready .data-output.email{translate:calc(var(--mail-send,0)*2px) 0;border-color:rgb(186 163 210 / calc(.17 + var(--mail-send,0)*var(--ambient-strength)*.4))}
.ambient-ready .data-output.sms{translate:calc(var(--sms-send,0)*2px) 0;border-color:rgb(159 202 214 / calc(.17 + var(--sms-send,0)*var(--ambient-strength)*.4))}
.ambient-ready .data-output.email>b{opacity:calc(.25 + var(--mail-send,0)*.75)}.ambient-ready .data-output.sms>b{opacity:calc(.25 + var(--sms-send,0)*.75)}
.ambient-ready .seo-line{transform-origin:bottom;transform:scaleY(calc(1 + var(--ambient-wave)*.025))}
.ambient-ready .seo-index{opacity:calc(.6 + var(--ambient-pulse)*.4)}
.ambient-ready .seo-signal{opacity:calc(.45 + var(--ambient-pulse)*.55)}
.ambient-ready .seo-metrics>span>span{translate:0 calc(var(--ambient-wave)*.6px);opacity:calc(.7 + var(--ambient-pulse)*.3)}
.ambient-ready .seo-bottom>span:first-child{translate:0 calc(var(--ambient-wave)*.9px)}
.micro-scene .shop-window,.micro-scene .app-dashboard,.micro-scene .data-crm,.micro-scene .seo-panel{transition:box-shadow .4s,border-color .4s}
.micro-hover .shop-window,.micro-hover .app-dashboard,.micro-hover .data-crm,.micro-hover .seo-panel{border-color:#bda2d36b;box-shadow:0 0 16px #b49acc10}
.micro-hover .shop-product>img{scale:1.035}.micro-hover .seo-signal{r:3}
@media(max-width:700px){
 .shop-product:after{width:44px;height:49px}
 .ambient-ready .data-scanner{top:calc(3px + var(--scan,0)*30px)}
}
/* Four purpose-drawn glyphs replace the small ordinal in the same column. */
#approche .method-steps>li>.method-glyph{display:block;width:34px;height:34px;min-width:0;margin-top:-4px;color:inherit}
.method-glyph svg{width:100%;height:100%;overflow:visible;fill:none;stroke:var(--glyph-gradient);stroke-width:1.05;stroke-linecap:round;stroke-linejoin:round;opacity:calc(.4 + var(--glyph-phase,1)*.6)}
.glyph-corners{transform-origin:20px 20px;transform:scale(calc(1.2 - var(--glyph-phase,1)*.2)) rotate(calc(5deg - var(--glyph-phase,1)*5deg))}
.glyph-core{fill:#cbb7de;stroke-width:.7;opacity:calc(.3 + var(--glyph-phase,1)*.7)}
.glyph-cross,.glyph-guide{opacity:.3}
.glyph-draw,.glyph-bridge{stroke-dasharray:1;stroke-dashoffset:calc(1 - var(--glyph-phase,1))}
.glyph-nodes{opacity:calc(.35 + var(--glyph-phase,1)*.65);fill:#c6c3da}
.glyph-bracket.left{transform:translateX(calc(-4px + var(--glyph-phase,1)*4px))}.glyph-bracket.right{transform:translateX(calc(4px - var(--glyph-phase,1)*4px))}
.glyph-orbit{transform-origin:20px 20px;transform:rotate(calc(-75deg + var(--glyph-phase,1)*75deg))}
.home-motion .step-reached .method-glyph .glyph-core{animation:glyph-energy 6s ease-in-out infinite;animation-play-state:paused}
.home-motion .method-visible .step-reached .method-glyph .glyph-core{animation-play-state:running}
@keyframes glyph-energy{0%,100%{opacity:.48}50%{opacity:.95}}
.home-motion #approche .method-intro{translate:0 calc(var(--method-depth,0)*-5px)}
.home-motion #approche .method-steps{translate:0 calc(var(--method-depth,0)*3px)}

/* Contact is one existing stage: an invitation, a single impact, then the final CTA. */
.contact-headline{grid-column:1/-1;position:relative;width:100%;isolation:isolate}
.contact-headline .contact-title{margin:0 0 8px!important}
.contact-invitation{position:absolute;inset:0;display:grid;place-items:center;margin:0;font:500 clamp(66px,7vw,104px)/1.05 Manrope,sans-serif;letter-spacing:-.065em;color:#efedf1;pointer-events:none;visibility:hidden;z-index:2}
.contact-impact{position:absolute;left:50%;top:50%;width:1px;height:1px;pointer-events:none;z-index:-1}
.impact-ring{position:absolute;left:-100px;top:-100px;width:200px;height:200px;border:1px solid #c6b3d76b;border-radius:50%;opacity:0;transform:scale(.1)}
.impact-glow{position:absolute;left:-180px;top:-110px;width:360px;height:220px;background:radial-gradient(ellipse,#c4b0d529,#a1cbd019 34%,transparent 68%);opacity:0}
.contact-impact>i{position:absolute;left:0;top:0;width:3px;height:9px;background:linear-gradient(#c2dce3,#b998d1);clip-path:polygon(30% 0,100% 30%,60% 100%,0 65%);opacity:0}
.home-motion .contact-invitation{visibility:visible;opacity:var(--invitation,0);transform:translateY(calc(var(--invitation-exit,0)*-12px)) scale(calc(1 - var(--invitation-exit,0)*.025))}
.home-motion .contact-headline .contact-title{opacity:var(--contact-reveal,0);transform:translateY(calc(14px - var(--contact-reveal,0)*14px)) scale(calc(.985 + var(--contact-reveal,0)*.015))}
.home-motion .contact-impact .impact-ring{opacity:var(--impact,0);transform:scale(calc(.12 + var(--impact-travel,0)*1.15))}
.home-motion .contact-impact .impact-glow{opacity:var(--impact,0);transform:scale(calc(.8 + var(--impact-travel,0)*.25))}
.home-motion .contact-impact>i{opacity:calc(var(--impact,0)*.65);transform:translate(calc(-8px - var(--impact-travel,0)*70px),calc(8px + var(--impact-travel,0)*38px)) rotate(32deg)}
.home-motion .contact-impact>i:nth-of-type(2){transform:translate(calc(8px + var(--impact-travel,0)*83px),calc(-6px - var(--impact-travel,0)*40px)) rotate(-25deg)}
.home-motion .contact-impact>i:nth-of-type(3){transform:translate(calc(7px + var(--impact-travel,0)*36px),calc(11px + var(--impact-travel,0)*60px)) rotate(60deg)}
.home-motion .contact-editorial>.theo-portrait,.home-motion .contact-copy{opacity:var(--contact-content,0);transition:none}
.home-motion .contact-copy .contact-intro,.home-motion .contact-copy .contact-details{opacity:1;transform:none}
.home-motion .contact-details>summary{transform:perspective(650px) translateZ(calc(-15px + var(--contact-content,0)*15px)) scale(calc(.97 + var(--contact-content,0)*.03));box-shadow:0 7px 30px rgb(183 150 206 / calc(var(--impact,0)*.18))}
.contact-call{display:block;width:fit-content;margin:20px 0 0;padding:2px 0;color:#c8bfce;text-decoration:none;font-size:13px;line-height:1.5;letter-spacing:.005em}
.contact-call>span{color:#9e96a9}.contact-call:hover{color:#f0e6f5}.contact-call:hover>span{color:#c9bbd7}
.contact-call:focus-visible{outline:1px solid #b8bdd7;outline-offset:5px}
.contact-meteor{opacity:0}
.contact-meteor-tail,.contact-meteor-bloom{fill:none;stroke:url(#filament-spectrum);stroke-linecap:round;stroke-width:1.5;vector-effect:non-scaling-stroke}
.contact-meteor-bloom{stroke-width:5;opacity:.18;filter:blur(2px)}
.contact-copy:focus-within{opacity:1!important}
@media(max-width:700px){
 #approche .method-steps>li>.method-glyph{width:30px;height:30px;margin-top:-2px}
 .home-motion #approche .method-intro,.home-motion #approche .method-steps{translate:none}
 .contact-invitation{font-size:63px}.contact-call{margin:17px auto 0;font-size:13px}
 .contact-meteor-bloom{display:none}.impact-glow{width:260px;left:-130px}
}
html:not(.home-motion) .method-glyph{--glyph-phase:1!important}
html:not(.home-motion) .contact-invitation,html:not(.home-motion) .contact-impact{display:none}
html:not(.home-motion) .contact-copy,html:not(.home-motion) .theo-portrait{opacity:1}
@media(prefers-reduced-motion:reduce){.method-glyph *{animation:none!important}.method-glyph{--glyph-phase:1!important}.contact-invitation,.contact-impact{display:none!important}.contact-copy,.theo-portrait,.contact-title{opacity:1!important;transform:none!important}}
#contact .contact-invitation{font-family:Manrope,sans-serif;font-size:clamp(66px,7vw,104px);font-weight:500;line-height:1.05;letter-spacing:-.065em;margin:0;color:#efedf1;max-width:none}
.ambient-ready .data-table>span{transform:scaleX(calc(1 - var(--ambient-strength)*.7 + var(--data-fill,1)*var(--ambient-strength)*.7))}
.ambient-ready .data-person{translate:calc((-3px + var(--crm-fill,1)*3px)*var(--ambient-strength)) 0;opacity:calc(1 - var(--ambient-strength)*.5 + var(--crm-fill,1)*var(--ambient-strength)*.5)}
.ambient-ready .data-output.email{translate:calc(var(--mail-send,0)*var(--ambient-strength)*2px) 0}.ambient-ready .data-output.sms{translate:calc(var(--sms-send,0)*var(--ambient-strength)*2px) 0}
.ambient-ready .data-output.email>b{opacity:calc(1 - var(--ambient-strength)*.75 + var(--mail-send,0)*var(--ambient-strength)*.75)}.ambient-ready .data-output.sms>b{opacity:calc(1 - var(--ambient-strength)*.75 + var(--sms-send,0)*var(--ambient-strength)*.75)}
@media(max-width:700px){#contact .contact-invitation{font-size:63px}}
/* Glyphs occupy the previous ordinal slot; text columns retain their original width. */
#approche .method-steps>li>.method-glyph{flex:0 0 10px;position:relative;width:10px;height:22px;margin:0;padding:0}
.method-glyph svg{position:absolute;left:-9px;top:-2px;width:30px;height:30px}
@media(max-width:700px){.method-glyph svg{left:-8px;width:28px;height:28px}}

/* 4193 — bounded ambient polish; no new layout or scroll distance. */
.home-motion #expertises .services-title-stage .section-heading{transform-origin:left center;transform:translateY(calc(var(--title-context,0)*-8px)) scale(calc(1 - var(--title-context,0)*.18));opacity:calc(1 - var(--title-context,0)*.45)}
.ambient-ready .shop-product>img{translate:0 calc(var(--ambient-wave)*-2.5px);rotate:calc(var(--ambient-wave)*3deg)}
.ambient-ready .shop-product:after{background-image:linear-gradient(115deg,transparent 18%,#efdcfaad 48%,transparent 65%);opacity:calc(var(--ambient-pulse)*.78)}
.ambient-ready .shop-window{translate:0 calc(var(--ambient-wave)*.85px)}
.ambient-ready .shop-cta{border-color:rgb(205 180 225 / calc(.2 + var(--ambient-pulse)*.5));box-shadow:0 0 12px rgb(182 164 209 / calc(var(--ambient-pulse)*.10))}
.ambient-ready .cart-count{display:inline-block;scale:calc(1 + var(--ambient-pulse)*.13);text-shadow:0 0 7px rgb(204 175 224 / var(--ambient-pulse));opacity:calc(.7 + var(--ambient-pulse)*.3)}
.ambient-ready .app-phone{translate:0 calc(var(--ambient-wave)*2px)}
.ambient-ready .app-track>span{box-shadow:0 0 5px #b3a4ca55}
.ambient-ready .app-board .app-ticket{translate:calc(var(--ambient-wave)*2px) calc(var(--ambient-wave)*-2px);background:rgb(184 165 212 / calc(.16 + var(--ambient-pulse)*.23))}
.ambient-ready .app-board>span>span{opacity:calc(.45 + var(--ambient-pulse)*.55)}
.ambient-ready .status-dot{opacity:calc(.4 + var(--ambient-pulse)*.6);scale:calc(1 + var(--ambient-pulse)*.6);box-shadow:0 0 7px rgb(156 211 190 / calc(.2 + var(--ambient-pulse)*.5))}
.ambient-ready .data-scanner{height:2px;box-shadow:0 0 9px #c6a5e15c}
.ambient-ready .data-source>span:not(.data-scanner){opacity:calc(.5 + var(--scan,0)*var(--ambient-strength)*.5)}
.ambient-ready .data-current{stroke-width:1.6;stroke-dasharray:.15 .85;stroke-dashoffset:calc(var(--flow-travel,0)*-1);opacity:calc(var(--flow-light,0)*var(--ambient-strength)*.95)}
.ambient-ready .data-table>span{transform:scaleX(calc(1 - var(--ambient-strength)*.82 + var(--data-fill,1)*var(--ambient-strength)*.82));opacity:calc(1 - var(--ambient-strength)*.6 + var(--data-fill,1)*var(--ambient-strength)*.6)}
.ambient-ready .data-crm{border-color:rgb(194 170 218 / calc(.18 + var(--crm-fill,1)*var(--ambient-strength)*.4))}
.ambient-ready .data-person{translate:calc((-5px + var(--crm-fill,1)*5px)*var(--ambient-strength)) 0}
.ambient-ready .data-output.email{translate:calc(var(--mail-send,0)*var(--ambient-strength)*3px) 0;background:rgb(38 34 46 / 1)}
.ambient-ready .data-output.sms{translate:calc(var(--sms-send,0)*var(--ambient-strength)*3px) 0}
.ambient-ready .data-output.email>b{scale:calc(.9 + var(--mail-send,0)*var(--ambient-strength)*.15);display:inline-block}
.ambient-ready .data-output.sms>b{scale:calc(.9 + var(--sms-send,0)*var(--ambient-strength)*.15);display:inline-block}
.ambient-ready .seo-line{transform:scaleY(calc(.94 + var(--query-update,0)*.12));stroke:color-mix(in srgb,#b6aed9,#c7dde6 calc(var(--ambient-pulse)*55%))}
.ambient-ready .seo-index{opacity:calc(.45 + var(--index-check,0)*.55);text-shadow:0 0 5px rgb(174 216 196 / calc(var(--index-check,0)*.3))}
.ambient-ready .seo-signal{r:calc(1.8px + var(--ambient-pulse)*1.4px)}
.ambient-ready .seo-metrics>span>span{translate:0 calc(var(--ambient-wave)*.9px);scale:calc(.95 + var(--query-update,0)*.1) 1;opacity:calc(.6 + var(--ambient-pulse)*.4)}
.ambient-ready .seo-bottom>span:first-child{translate:0 calc(var(--ambient-wave)*-1.8px);color:color-mix(in srgb,#8f899b,#d5c6e5 calc(var(--query-update,0)*80%))}
/* Larger glyphs retain the same ten-pixel layout slot and text columns. */
.method-glyph svg{width:37px;height:37px;left:-12.5px;top:-5.5px}
.home-motion #approche .method-intro{translate:0 calc(var(--method-depth,0)*-7px)}
.home-motion #approche .method-steps{translate:0 calc(var(--method-depth,0)*4px)}
.home-motion #approche:before{content:'';position:absolute;inset:12% 0 7%;z-index:-1;pointer-events:none;background:radial-gradient(ellipse at 62% 52%,#b38bce08,transparent 58%);translate:0 calc(var(--method-depth,0)*7px)}
.impact-ring{border-color:#c6b3d799;box-shadow:inset 0 0 14px #c6afd510,0 0 14px #aacbd310}
.impact-glow{background:radial-gradient(ellipse,#c4b0d536,#a1cbd022 34%,transparent 68%)}
.impact-flash{position:absolute;left:-150px;top:-100px;width:300px;height:200px;background:radial-gradient(ellipse,#e3d6ef55,#a1cbd02b 28%,transparent 65%);opacity:0}
.home-motion .contact-copy{transform-origin:left center;transform:perspective(900px) translateZ(calc(-22px + var(--contact-content,0)*22px)) scale(calc(.94 + var(--contact-content,0)*.06));filter:blur(calc((1 - var(--contact-content,0))*.8px))}
.home-motion .contact-details>summary{box-shadow:0 10px 30px rgb(0 0 0 / calc(var(--contact-content,0)*.16)),0 0 24px rgb(183 150 206 / calc(var(--impact,0)*.18))}
#contact .contact-copy .contact-response{font-size:12px;line-height:1.5;color:#99929f;letter-spacing:.01em;max-width:none;margin:10px 0 0}
.portrait-arc{position:absolute;left:-14px;top:-15px;width:calc(100% + 28px);height:calc(100% - 20px);fill:none;stroke:url(#portrait-spectrum);stroke-width:.9;pointer-events:none;opacity:.5;z-index:-1;overflow:visible}
.home-motion .portrait-arc{opacity:calc(var(--portrait-energy,0)*.6)}
#contact .theo-portrait:before{background:radial-gradient(ellipse at 12% 23%,#bf93d31a,transparent 62%),radial-gradient(ellipse at 90% 71%,#8fbed015,transparent 66%)}
.contact-copy:focus-within{transform:none!important;filter:none!important}
@media(max-width:700px){
 .method-glyph svg{width:34px;height:34px;left:-11px;top:-5px}
 .home-motion #approche .method-intro,.home-motion #approche .method-steps,.home-motion #approche:before{translate:none}
 .home-motion .contact-copy{transform-origin:center;transform:scale(calc(.97 + var(--contact-content,0)*.03));filter:none}
 #contact .contact-copy .contact-response{margin:9px auto 0;font-size:12px}
}
html:not(.home-motion) #expertises .services-title-stage .section-heading{transform:none;opacity:1}
html:not(.home-motion) .contact-copy{transform:none;filter:none}
html:not(.home-motion) #approche:before{display:none}
@media(prefers-reduced-motion:reduce){
 #expertises .services-title-stage .section-heading,.contact-copy{transform:none!important;filter:none!important;opacity:1!important}
 #approche .method-intro,#approche .method-steps{translate:none!important}
}

/* 4194 — the existing Contact range becomes one typographic hand-off. */
.home-motion #approche{opacity:calc(1 - var(--approach-exit,0))}
.home-motion #contact{border-top-color:rgb(255 255 255 / calc(var(--contact-context,0)*.12))}
.home-motion #contact>.section-top{opacity:var(--contact-context,0)}
#contact-type-stage{position:fixed;inset:0;z-index:7;pointer-events:none;isolation:isolate;visibility:hidden}
#contact-type-stage .contact-invitation{position:absolute;inset:auto;left:50%;top:50%;display:block;width:max-content;height:auto;margin:0;max-width:none;font:500 clamp(66px,7vw,104px)/1.05 Manrope,sans-serif;letter-spacing:-.065em;color:#efedf1;opacity:1;transform:translate(-50%,-50%);visibility:inherit}
.invitation-word,.invitation-slot,.invitation-glyph{display:inline-block}
.invitation-glyph{transform-origin:center;will-change:transform,opacity}
.invitation-slot[data-letter="space"]{width:.2em}
#contact-type-stage .contact-impact{left:50%;top:50%;z-index:-1}
#contact-type-stage .impact-ring{border-color:#c9b4dcaa;background:radial-gradient(ellipse,transparent 63%,#b5c9dc08 72%,transparent 74%)}
#contact-type-stage .impact-glow{width:520px;height:340px;left:-260px;top:-170px;background:radial-gradient(ellipse,#bba2ce25,#a9d4d517 30%,transparent 69%)}
#contact-type-stage .contact-impact>i{display:none}
.contact-follow-light{position:fixed;left:0;top:0;width:460px;height:460px;z-index:2;pointer-events:none;opacity:0;background:radial-gradient(ellipse,#c2a7d016,#a5cdd00a 30%,transparent 67%);contain:strict}
#contact .contact-title .contact-title-line{display:inline;white-space:nowrap}
#contact .contact-title .contact-first-line{color:#eeede8}
#contact .contact-title .contact-second-line{color:#ada0bd}
#contact .contact-title .contact-phrase,#contact .contact-title .contact-shared{display:inline-block;white-space:pre;color:inherit;transform-origin:center}
.home-motion #contact .contact-headline .contact-title{opacity:1;transform:none;filter:none}
.home-motion #contact .contact-copy,.home-motion #contact .theo-portrait{transform-origin:center;transform:perspective(1000px) translateZ(calc(-14px + var(--contact-content,0)*14px)) scale(calc(.9 + var(--contact-content,0)*.1));filter:blur(calc((1 - var(--contact-content,0))*1.3px));opacity:var(--contact-content,0)}
.home-motion #contact .theo-portrait{animation:none}
.home-motion #contact .contact-copy:focus-within{opacity:1;transform:none;filter:none}
#contact .contact-details>summary{transition:translate .2s ease-out,box-shadow .25s,border-color .25s,scale .18s}
#contact .contact-details>summary:hover{border-color:#c3abc9;box-shadow:0 4px 32px #c1a2d223,0 0 1px #accbd7}
#contact .contact-details>summary:hover:after{opacity:1;box-shadow:0 0 7px #b5c9db44}
#contact .contact-details>summary:active{scale:.975}
#contact .contact-details>summary:hover>span{transform:translateX(2px) rotate(-8deg)}
#contact .portrait-arc{stroke-width:1;opacity:calc(.12 + var(--portrait-energy,0)*.46)}
#contact .portrait-window{box-shadow:0 16px 40px rgb(0 0 0 / calc(var(--contact-content,1)*.27)),0 0 24px rgb(188 157 210 / calc((1 - var(--contact-content,1))*.1))}
#approche .method-glyph svg{width:41px;height:41px;left:-14.5px;top:-7.5px;stroke-width:1.15}
@media(max-width:700px){
 #contact-type-stage .contact-invitation{font-size:63px}
 #contact-type-stage .impact-glow{width:300px;left:-150px}
 .contact-follow-light{width:290px;height:290px}
 #approche .method-glyph svg{width:38px;height:38px;left:-13px;top:-7px}
 .home-motion #contact .contact-copy,.home-motion #contact .theo-portrait{transform:scale(calc(.92 + var(--contact-content,0)*.08));filter:blur(calc((1 - var(--contact-content,0))*.6px))}
 #contact .contact-details>summary{translate:none}
}
html:not(.home-motion) #contact-type-stage,html:not(.home-motion) .contact-follow-light{display:none}
html:not(.home-motion) #approche,html:not(.home-motion) #contact>.section-top{opacity:1}
html:not(.home-motion) #contact .contact-title span{opacity:1!important;transform:none!important}
html:not(.home-motion) #contact .theo-portrait,html:not(.home-motion) #contact .contact-copy{opacity:1;filter:none;transform:none}
@media(prefers-reduced-motion:reduce){
 #contact-type-stage,.contact-follow-light{display:none!important}
 #approche,#contact>.section-top{opacity:1!important}
 #contact .contact-title span{opacity:1!important;transform:none!important}
 #contact .theo-portrait,#contact .contact-copy{opacity:1!important;filter:none!important;transform:none!important}
 #contact .contact-details>summary{translate:none!important;transition:none!important}
}
.contact-isolation-field{position:fixed;inset:0;z-index:2;pointer-events:none;opacity:0;background:#101112}
html:not(.home-motion) .contact-isolation-field{display:none}
@media(prefers-reduced-motion:reduce){.contact-isolation-field{display:none!important}}

/* 4195 — one short impact, no letter morph. Final layout remains unchanged. */
#contact-type-stage .contact-invitation{font-size:12vw;line-height:1.05;letter-spacing:-.065em}
#contact-type-stage .invitation-word{transform-origin:center;will-change:transform,opacity;white-space:nowrap}
.climax-dot{display:inline-block;line-height:inherit}
.site-header{opacity:var(--climax-header,1)}
.site-header:focus-within,.site-header:has([aria-expanded="true"]){opacity:1!important}
.climax-seed{position:absolute;left:0;top:0;width:19px;height:19px;opacity:0;filter:drop-shadow(0 0 9px #bdabdf66);pointer-events:none}
.climax-seed svg{display:block;width:100%;height:100%}
.climax-fragment{position:absolute;left:0;top:0;width:5px;height:10px;background:linear-gradient(140deg,#bde1e6,#be9bd2,#e3bdd4);clip-path:polygon(25% 0,100% 30%,70% 100%,0 65%);opacity:0}
#contact-type-stage .contact-impact{z-index:0}
.home-motion #contact .contact-headline .contact-title{opacity:var(--contact-reveal,0);filter:blur(calc((1 - var(--contact-reveal,0))*8px));transform:perspective(1150px) translateZ(calc(-35px + var(--contact-reveal,0)*35px)) scale(calc(.78 + var(--contact-reveal,0)*.22));will-change:auto}
.home-motion #contact .theo-portrait{opacity:var(--portrait-reveal,0);transform:perspective(1000px) translateX(calc(-24px + var(--portrait-reveal,0)*24px)) translateZ(calc(-30px + var(--portrait-reveal,0)*30px)) scale(calc(.96 + var(--portrait-reveal,0)*.04));filter:blur(calc((1 - var(--portrait-reveal,0))*2px))}
.home-motion #contact .contact-copy{opacity:var(--contact-content,0);transform:perspective(1000px) translateX(calc(24px - var(--contact-content,0)*24px)) translateZ(calc(-30px + var(--contact-content,0)*30px));filter:blur(calc((1 - var(--contact-content,0))*2px))}
.home-motion #contact .contact-details>summary{opacity:var(--cta-reveal,0);transform:perspective(700px) translateZ(calc(-22px + var(--cta-reveal,0)*22px)) scale(calc(.94 + var(--cta-reveal,0)*.06));box-shadow:0 12px 28px rgb(0 0 0 / calc(var(--cta-reveal,0)*.18)),0 0 23px rgb(181 157 206 / calc(sin(var(--cta-reveal,0)*3.14159)*.17))}
#contact .contact-details>summary{background-image:linear-gradient(110deg,transparent 28%,#bcadd72e 43%,#a8cfd83d 49%,#d0aed52b 56%,transparent 72%);background-size:240% 100%;background-position:150% 0;transition:translate .2s ease-out,scale .16s,background-position .85s,border-color .2s,box-shadow .2s}
#contact .contact-details>summary:hover{background-position:-50% 0;border-color:#b7a8c4}
#contact .contact-details>summary:hover>span{transform:translateX(3px)}
#contact .contact-details>summary:active{scale:.972}
#contact .contact-call{padding:7px 11px;border:1px solid #aaa0b436;border-radius:3px;background:#17171b88;color:#d2cbd9;margin-top:14px}
#contact .contact-call>span{color:#b6acbf}
#contact .contact-call:hover{border-color:#bca4ce77;background:#26212b88;color:#eee9f2}
#contact .contact-copy .contact-response{margin-top:6px}
.home-motion #contact .contact-call,.home-motion #contact .contact-response{opacity:var(--cta-reveal,0)}
.home-motion #contact .theo-portrait:before{opacity:calc(var(--portrait-energy,0)*.55)}
.home-motion #contact .portrait-arc,.home-motion #contact .theo-portrait:after{opacity:calc(var(--portrait-energy,0)*.58)}
.home-motion #contact .portrait-window:before{opacity:calc(var(--portrait-energy,0)*.8)}
@media(max-width:700px){
 #contact-type-stage .contact-invitation{font-size:clamp(68px,22vw,95px)}
 .climax-seed{width:14px;height:14px}.climax-fragment{width:4px;height:7px}
 .home-motion #contact .contact-headline .contact-title{transform:scale(calc(.86 + var(--contact-reveal,0)*.14));filter:blur(calc((1 - var(--contact-reveal,0))*3px))}
 .home-motion #contact .theo-portrait{transform:translateY(calc(9px - var(--portrait-reveal,0)*9px));filter:none}
 .home-motion #contact .contact-copy{transform:translateY(calc(9px - var(--contact-content,0)*9px));filter:none}
 .home-motion #contact .contact-details>summary{transform:scale(calc(.97 + var(--cta-reveal,0)*.03))}
 #contact .contact-call{margin-top:11px}
}
html:not(.home-motion) .site-header{opacity:1!important}
html:not(.home-motion) #contact .contact-title,html:not(.home-motion) #contact .contact-details>summary,html:not(.home-motion) #contact .contact-call,html:not(.home-motion) #contact .contact-response{opacity:1!important;transform:none!important;filter:none!important}
@media(prefers-reduced-motion:reduce){
 .site-header{opacity:1!important}
 #contact .contact-title,#contact .contact-details>summary,#contact .contact-call,#contact .contact-response{opacity:1!important;transform:none!important;filter:none!important}
 #contact .contact-details>summary{background-image:none}
}
.home-motion #contact .contact-headline .contact-title{transform-origin:var(--contact-origin,center)!important}

/* 4196 — scroll-only V / point hand-off. All geometry stays inside the existing Contact range. */
#contact-type-stage .invitation-word{transform:none;filter:none;opacity:1}
.invitation-v,.climax-dot,#contact .contact-stop{display:inline-block;line-height:inherit}
.invitation-rest{display:inline}
#contact-type-stage .contact-impact{display:none}
.contact-v-sculpture{position:absolute;left:0;top:0;opacity:0;pointer-events:none;transform-style:preserve-3d}
.v-volume{width:100%;height:100%;transform-style:preserve-3d;transform:rotateY(calc(var(--v-px,0)*9deg + var(--v-near,0)*12deg)) rotateX(calc(var(--v-py,0)*-6deg));filter:drop-shadow(3px 8px 8px #05040977)}
.v-volume svg{width:100%;height:100%;display:block;animation:contact-v-drift 6.5s ease-in-out infinite paused}
.contact-ambient .v-volume svg{animation-play-state:running}
@keyframes contact-v-drift{0%,100%{transform:translateY(0) rotate(-1deg)}50%{transform:translateY(-2.5px) rotate(1deg)}}
#contact{isolation:isolate;--contact-px:0;--contact-py:0;--cta-near:0}
#contact:before{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;opacity:calc(var(--contact-content,0)*.8);background:radial-gradient(ellipse at calc(50% + var(--contact-px,0)*20%) 42%,#a77bb60b,transparent 54%),radial-gradient(ellipse at 20% 53%,rgb(143 200 209 / calc(.018 - var(--contact-px,0)*.013)),transparent 43%),radial-gradient(ellipse at 79% 49%,rgb(211 151 192 / calc(.018 + var(--contact-px,0)*.013)),transparent 43%)}
#contact .theo-portrait:after,#contact .portrait-window:before,#contact .portrait-arc{display:none}
#contact .theo-portrait:before{background:radial-gradient(ellipse at calc(50% + var(--contact-px,0)*20%) 50%,#a879c528,#83b8c011 44%,transparent 69%);filter:none}
#contact .portrait-fragments{position:absolute;inset:0;z-index:-1;pointer-events:none;opacity:var(--portrait-energy,1)}
.portrait-fragments i{position:absolute;width:14px;height:25px;background:linear-gradient(135deg,#b6d9de,#74799f 27%,#c3a0c3 49%,#7f6d9e 67%,#b7cbd6);clip-path:polygon(25% 0,100% 19%,72% 82%,25% 100%,0 38%);animation:portrait-chip-drift 6s ease-in-out infinite paused;opacity:.62}
.portrait-fragments i:nth-child(1){left:-9px;top:24%;rotate:-23deg;translate:calc(var(--contact-px,0)*-6px) calc(var(--contact-py,0)*-4px)}
.portrait-fragments i:nth-child(2){right:-10px;top:60%;width:11px;height:19px;rotate:34deg;animation-delay:-2s;translate:calc(var(--contact-px,0)*8px) calc(var(--contact-py,0)*5px)}
.portrait-fragments i:nth-child(3){left:23px;bottom:34px;width:17px;height:10px;rotate:-12deg;animation-delay:-4s;translate:calc(var(--contact-px,0)*-4px) calc(var(--contact-py,0)*6px)}
.contact-ambient .portrait-fragments i{animation-play-state:running}
@keyframes portrait-chip-drift{0%,100%{transform:translateY(0) rotate(0)}50%{transform:translateY(-3px) rotate(4deg)}}
#contact .contact-call{display:flex;align-items:center;gap:6px;width:fit-content}
.call-glyph{width:14px;height:14px;flex:none;fill:none;stroke:#c6b8d3;stroke-width:1.1;stroke-linecap:round;stroke-linejoin:round}
.call-wave{opacity:.45;transform-origin:center}
.contact-call:hover .call-wave{animation:call-wave .8s ease-out}
@keyframes call-wave{0%{opacity:.3;transform:scale(.9)}45%{opacity:1;transform:scale(1.12)}100%{opacity:.45;transform:scale(1)}}
#contact .contact-details>summary{animation:contact-cta-sheen 7s ease-in-out infinite paused}
.contact-ambient #contact .contact-details>summary{animation-play-state:running}
#contact .contact-details>summary:hover{animation:none;background-position:-50% 0}
@keyframes contact-cta-sheen{0%,75%{background-position:150% 0}96%,100%{background-position:-50% 0}}
@media(hover:hover) and (pointer:fine) and (min-width:701px){
 .home-motion #contact.contact-pointer-ready .contact-headline{translate:calc(var(--contact-px)*3px) calc(var(--contact-py)*3px)}
 .home-motion #contact.contact-pointer-ready .theo-portrait{translate:calc(var(--contact-px)*3px) calc(var(--contact-py)*3px)}
 .home-motion #contact.contact-pointer-ready .contact-copy{translate:calc(var(--contact-px)*5px) calc(var(--contact-py)*3px)}
 .home-motion #contact.contact-pointer-ready .contact-details>summary{translate:calc(var(--contact-px)*2px + var(--mag-x,0px)) calc(var(--contact-py)*2px + var(--mag-y,0px));transform:perspective(700px) translateZ(calc(-22px + var(--cta-reveal,0)*22px + var(--cta-near)*5px)) scale(calc(.94 + var(--cta-reveal,0)*.06 + var(--cta-near)*.012));box-shadow:0 calc(12px + var(--cta-near)*4px) 28px #0004,0 0 18px rgb(181 157 206 / calc(var(--cta-near)*.11))}
}
@media(max-width:700px){
 .contact-v-sculpture{filter:none}.v-volume{filter:drop-shadow(2px 4px 4px #05040955)}
 #contact .contact-call{gap:5px}.call-glyph{width:13px;height:13px}
}
html:not(.home-motion) #contact:before{opacity:.8}
html:not(.home-motion) #contact .portrait-fragments{opacity:1}
html:not(.home-motion) #contact .portrait-fragments i,html:not(.home-motion) #contact .contact-details>summary{animation:none}
@media(prefers-reduced-motion:reduce){
 .contact-v-sculpture{display:none!important}
 #contact .portrait-fragments i,#contact .contact-details>summary,.call-wave{animation:none!important}
 #contact .contact-headline,#contact .theo-portrait,#contact .contact-copy,#contact .contact-details>summary{translate:none!important}
}

/* 4197 — the V resolves into the headline, five faceted planes inhabit Contact. */
#contact .contact-initial{display:inline-block;line-height:inherit}
.contact-v-type{position:absolute;left:0;top:0;font:500 80px/1 Manrope,sans-serif;letter-spacing:-.065em;color:#ada0bd;opacity:0;white-space:pre}
.contact-v-sculpture svg{animation:none!important}
.contact-checkpoint .contact-isolation-field{background:radial-gradient(ellipse at 52% 48%,#aaa0c108,transparent 41%),#101112}
.contact-space{position:absolute;inset:0;pointer-events:none;z-index:-1;opacity:var(--space-visible,0);perspective:1100px;overflow:clip}
.space-facet{position:absolute;display:block;transform-style:preserve-3d;transform:translate3d(calc((1 - var(--space-enter,0))*var(--fly-x)),calc((1 - var(--space-enter,0))*var(--fly-y)),calc((1 - var(--space-enter,0))*180px)) scale(calc(1 + (1 - var(--space-enter,0))*1.9));filter:blur(calc((1 - var(--space-enter,0))*2px))}
.space-facet i{display:block;width:100%;height:100%;background:linear-gradient(126deg,#b1d2db,#73748e 23%,#b89cc1 46%,#686077 49%,#8f80ad 65%,#a5c8ce);clip-path:polygon(27% 0,83% 7%,100% 37%,72% 100%,22% 89%,0 45%);box-shadow:inset 0 0 0 1px #e2dbea55;animation:spatial-drift var(--cycle) ease-in-out infinite paused;animation-delay:var(--phase)}
.space-facet i:after{content:'';position:absolute;inset:0;background:linear-gradient(108deg,transparent 30%,#e5cdec55 49%,transparent 66%);animation:spatial-sheen calc(var(--cycle)*1.3) ease-in-out infinite paused;animation-delay:var(--phase);transform:translateX(-130%)}
.contact-ambient .space-facet i,.contact-ambient .space-facet i:after{animation-play-state:running}
.facet-0{left:17%;top:24%;width:27px;height:52px;opacity:.31;--fly-x:-110px;--fly-y:-75px;--cycle:9.7s;--phase:-1.3s;rotate:22deg;translate:calc(var(--contact-px)*-5px) calc(var(--contact-py)*-4px)}
.facet-1{right:18%;top:38%;width:25px;height:38px;opacity:.4;--fly-x:140px;--fly-y:-130px;--cycle:11.3s;--phase:-3.9s;rotate:-17deg;translate:calc(var(--contact-px)*7px) calc(var(--contact-py)*5px)}
.facet-2{left:21%;top:72%;width:17px;height:27px;opacity:.53;--fly-x:-190px;--fly-y:75px;--cycle:8.9s;--phase:-5.1s;rotate:-32deg;translate:calc(var(--contact-px)*-8px) calc(var(--contact-py)*-6px)}
.facet-3{right:-10px;top:68%;width:54px;height:100px;opacity:.2;--fly-x:210px;--fly-y:170px;--cycle:13.1s;--phase:-6.7s;rotate:24deg;translate:calc(var(--contact-px)*14px) calc(var(--contact-py)*10px);filter:blur(calc(1px + (1 - var(--space-enter,0))*3px))}
.facet-4{left:61%;top:86%;width:15px;height:22px;opacity:.59;--fly-x:110px;--fly-y:170px;--cycle:10.1s;--phase:-2.4s;rotate:37deg;translate:calc(var(--contact-px)*11px) calc(var(--contact-py)*7px)}
@keyframes spatial-drift{0%,100%{transform:translateY(0) rotate(-2deg)}50%{transform:translateY(-7px) rotate(5deg)}}
@keyframes spatial-sheen{0%,45%{transform:translateX(-130%);opacity:0}70%{opacity:.55}100%{transform:translateX(130%);opacity:0}}
#contact .theo-portrait:before,#contact .theo-portrait:after,#contact .portrait-window:before{display:none}
#contact .portrait-window{box-shadow:0 14px 34px #0005,0 0 1px #c9b4de55}
@media(hover:hover) and (pointer:fine) and (min-width:701px){
 .home-motion #contact.contact-pointer-ready .contact-copy{translate:calc(var(--contact-px)*3px) calc(var(--contact-py)*3px)}
 .home-motion #contact.contact-pointer-ready .portrait-window{rotate:calc(var(--contact-px)*.2deg)}
 .home-motion #contact.contact-pointer-ready .contact-details>summary{translate:calc(var(--contact-px)*2px + var(--mag-x,0px)) calc(var(--contact-py)*2px + var(--mag-y,0px))}
}
@media(max-width:700px){
 .facet-0{left:5%;width:14px;height:27px}.facet-1{right:5%;width:12px;height:24px}.facet-2{left:9%;width:12px;height:20px}.facet-3{display:none}.facet-4{left:83%;width:10px;height:19px}
 .space-facet{transform:translate(calc((1 - var(--space-enter,0))*var(--fly-x)*.2),calc((1 - var(--space-enter,0))*var(--fly-y)*.2)) scale(calc(1 + (1 - var(--space-enter,0))*.5));filter:none}
}
html:not(.home-motion) .contact-space{opacity:.6}
html:not(.home-motion) .space-facet{transform:none;filter:none;translate:none}
html:not(.home-motion) .space-facet i,html:not(.home-motion) .space-facet i:after{animation:none}
@media(prefers-reduced-motion:reduce){
 .contact-v-type{display:none!important}.space-facet{transform:none!important;filter:none!important;translate:none!important}.space-facet i,.space-facet i:after{animation:none!important}
}
/* Readable final keyframe on an overshooting flick; no scroll interception. */
.connected-settle{position:fixed;inset:0;z-index:6;pointer-events:none;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:120px 25px 70px;text-align:center;background:#101112;animation:connected-settle-out .46s linear both}
.connected-settle h2{font:500 clamp(45px,6.4vw,94px)/1.1 Manrope,sans-serif;letter-spacing:-.055em;margin:0;max-width:1000px}
.connected-settle p{font-size:17px;line-height:1.8;max-width:650px;color:#bfb2ca;margin:28px 0}
@keyframes connected-settle-out{0%,78%{opacity:1}100%{opacity:0}}
@media(max-width:700px){.connected-settle h2{font-size:50px;max-width:340px}.connected-settle p{font-size:15px;max-width:320px}}
@media(prefers-reduced-motion:reduce){.connected-settle{display:none!important}}
#contact{position:relative}

/* 4198 — one Contact scene: rear type, a photo plate, two foreground actions.
   All original grid tracks, gaps, type sizes and in-flow dimensions are retained. */
#contact {
  --contact-photo-x: 64px;
  --contact-photo-y: -24px;
  --contact-cta-x: -28px;
}
#contact .contact-editorial {perspective:none;isolation:auto}
#contact .contact-headline {z-index:1}
.home-motion #contact .contact-headline .contact-title {
  opacity:var(--contact-reveal,0);
  filter:none;
  transform:perspective(1150px) translateZ(calc((var(--contact-reveal,0) - 1)*28px)) scale(calc(.94 + var(--contact-reveal,0)*.06));
}
#contact .contact-title {text-shadow:0 12px 26px #05060820}
#contact .theo-portrait {
  position:relative;
  z-index:3;
  transform-origin:50% 42%;
}
.home-motion #contact .theo-portrait {
  opacity:var(--portrait-reveal,0);
  filter:none;
  transform:translate3d(var(--contact-photo-x),calc(var(--contact-photo-y) + (1 - var(--portrait-reveal,0))*13px),0) perspective(1000px) rotateX(2deg) rotateY(8deg) rotateZ(-3.5deg) scale(calc(.98 + var(--portrait-reveal,0)*.02));
}
#contact .theo-portrait:before {
  content:"";
  display:block;
  position:absolute;
  inset:0 auto auto 0;
  width:100%;
  height:auto;
  aspect-ratio:.86;
  border-radius:2px;
  z-index:-1;
  pointer-events:none;
  background:linear-gradient(140deg,#a5b7bd 0%,#696574 38%,#b7a3b5 73%,#6d8390);
  filter:none;
  opacity:.82;
  transform:translate(2px,3px);
  box-shadow:2px 6px 9px #04040740,9px 24px 31px #03040838;
  animation:none;
}
.home-motion #contact .theo-portrait:before {opacity:calc(var(--portrait-reveal,0)*.82)}
#contact .portrait-window {
  border-radius:2px;
  border-color:#e0dce62e;
  rotate:none;
  box-shadow:inset 0 0 0 1px #ffffff0c,0 1px 2px #0008;
  animation:contact-photo-breath-4198 10.4s ease-in-out infinite paused;
}
#contact .portrait-window img {
  transform:scale(1.035);
  translate:0 0;
}
#contact .portrait-window:after {
  background:linear-gradient(124deg,#cde2e608,transparent 43%,#b69ec407);
  opacity:.55;
  animation:contact-photo-light-4198 9.6s ease-in-out infinite paused;
}
#contact .theo-portrait figcaption {text-shadow:0 2px 8px #05050880}
.home-motion #contact .contact-copy {
  position:relative;
  z-index:4;
  opacity:var(--contact-content,0);
  transform:none;
  translate:none;
  filter:none;
}
#contact .contact-copy>.contact-intro {translate:14px -4px}
#contact .contact-details>summary {
  position:relative;
  isolation:isolate;
  z-index:2;
  border-radius:3px;
  color:#26232a;
  background:#eae6ed;
  background-image:linear-gradient(118deg,#f1edf3 0%,#e7e4ec 65%,#ece9ef 100%);
  background-size:100% 100%;
  background-position:0 0;
  box-shadow:inset 0 1px 0 #ffffffba,inset 0 -1px 0 #b7b0c24d,0 11px 16px #00000024,0 25px 34px #06050b27;
  transform-origin:50% 50%;
  animation:none;
  transition:translate .2s ease-out,scale .16s,box-shadow .25s,color .2s;
}
.home-motion #contact .contact-details>summary {
  opacity:var(--cta-reveal,0);
  transform:translate3d(var(--contact-cta-x),7px,0) perspective(800px) rotateX(5deg) rotateY(-8deg) rotateZ(-1.4deg) scale(calc(.98 + var(--cta-reveal,0)*.02));
}
#contact .contact-details>summary:before {
  content:"";
  position:absolute;
  inset:1px;
  z-index:-1;
  border-radius:inherit;
  pointer-events:none;
  background:linear-gradient(108deg,transparent 22%,#ffffff66 47%,transparent 67%);
  opacity:.32;
  animation:contact-plate-light-4198 10.1s ease-in-out infinite paused;
}
#contact .contact-details>summary:after {
  content:"";
  position:absolute;
  left:1px;
  right:-1px;
  bottom:-3px;
  height:3px;
  z-index:-1;
  border-radius:0 0 2px 2px;
  pointer-events:none;
  background:linear-gradient(95deg,#9c9bb0,#b7cbd3 29%,#c6afc9 61%,#858495);
  transform:skewX(-24deg);
  transform-origin:top;
  opacity:.86;
  box-shadow:0 1px 0 #f3e9f020,0 3px 5px #00000026;
}
#contact .contact-details>summary:hover {
  background:#f0edf3;
  background-image:linear-gradient(118deg,#f8f5f9,#e9e6f0);
  box-shadow:inset 0 1px 0 #fff,inset 0 -1px 0 #b7b0c24d,0 13px 20px #00000030,0 28px 39px #06050b30;
}
#contact .contact-details>summary:hover:after {opacity:1;box-shadow:0 1px 0 #f3e9f038,0 3px 5px #00000026}
#contact .contact-details>summary:focus-visible {outline:2px solid #c7bed7;outline-offset:7px}
#contact .contact-details>summary>span {color:#625a72;transition:transform .25s ease}
#contact .contact-details>summary:hover>span {transform:translateX(3px)}
#contact .contact-call {
  position:relative;
  z-index:1;
  border-color:#c5b5d02e;
  border-radius:3px;
  background:linear-gradient(120deg,#22222b,#191b22);
  color:#dcd6e2;
  box-shadow:inset 0 1px 0 #ffffff0b,1px 2px 0 #625969,0 8px 13px #0000002b;
  transform:translate3d(13px,5px,0) perspective(900px) rotateY(6deg) rotateZ(1.8deg);
  transition:background .2s,border-color .2s,box-shadow .2s;
}
#contact .contact-call>span {color:#b6adbf}
#contact .contact-call:hover {background:linear-gradient(120deg,#292734,#20222a);border-color:#c5b5d066;box-shadow:inset 0 1px 0 #ffffff12,1px 2px 0 #7b6c87,0 10px 17px #00000036}
#contact .contact-copy .contact-response {translate:15px 8px}
/* Contents lets each existing fragment sit between the three content planes. */
#contact .contact-space {display:contents}
#contact .space-facet {
  pointer-events:none;
  filter:none;
  transform:translate3d(calc((1 - var(--space-enter,0))*var(--fly-x)*.45),calc((1 - var(--space-enter,0))*var(--fly-y)*.45),0) scale(calc(.9 + var(--space-enter,0)*.1));
}
#contact .space-facet i {animation-duration:10.3s}
#contact .space-facet i:after {animation-duration:10.7s}
#contact .facet-0 {left:22%;top:24%;width:22px;height:43px;z-index:0;opacity:calc(var(--space-visible,0)*.23);rotate:18deg;translate:calc(var(--contact-px,0)*-2px) calc(var(--contact-py,0)*-2px)}
#contact .facet-2 {left:25%;top:68%;width:13px;height:25px;z-index:2;opacity:calc(var(--space-visible,0)*.48);rotate:-31deg;translate:calc(var(--contact-px,0)*-4px) calc(var(--contact-py,0)*-3px)}
#contact .facet-3 {right:25%;top:76%;width:17px;height:31px;z-index:3;opacity:calc(var(--space-visible,0)*.46);rotate:29deg;translate:calc(var(--contact-px,0)*5px) calc(var(--contact-py,0)*3px);filter:none}
#contact .facet-4 {left:auto;right:1.6%;top:77%;width:34px;height:67px;z-index:5;opacity:calc(var(--space-visible,0)*.27);rotate:-17deg;translate:calc(var(--contact-px,0)*7px) calc(var(--contact-py,0)*5px)}
@keyframes contact-photo-breath-4198 {0%,100%{transform:translateY(0)}50%{transform:translateY(-1.6px)}}
@keyframes contact-photo-light-4198 {0%,100%{opacity:.38}50%{opacity:.73}}
@keyframes contact-plate-light-4198 {0%,100%{opacity:.22}50%{opacity:.48}}
body.contact-ambient #contact .portrait-window,
body.contact-ambient #contact .portrait-window:after,
body.contact-ambient #contact .contact-details>summary:before {animation-play-state:running}
@media(hover:hover) and (pointer:fine) and (min-width:701px) {
  .home-motion #contact.contact-pointer-ready .contact-headline {translate:calc(var(--contact-px,0)*3px) calc(var(--contact-py,0)*3px)}
  .home-motion #contact.contact-pointer-ready .theo-portrait {translate:calc(var(--contact-px,0)*5px) calc(var(--contact-py,0)*5px)}
  .home-motion #contact.contact-pointer-ready .portrait-window {rotate:none}
  .home-motion #contact.contact-pointer-ready .portrait-window img {translate:calc(var(--contact-px,0)*1.5px) calc(var(--contact-py,0)*1.5px)}
  .home-motion #contact.contact-pointer-ready .contact-copy {translate:none}
  .home-motion #contact.contact-pointer-ready .contact-details>summary {
    translate:calc(var(--contact-px,0)*3px + clamp(-4px,var(--mag-x,0px),4px)) calc(var(--contact-py,0)*2px + clamp(-3px,var(--mag-y,0px),3px));
    transform:translate3d(var(--contact-cta-x),calc(7px - var(--cta-near,0)*2px),0) perspective(800px) rotateX(calc(5deg - var(--contact-py,0)*1deg)) rotateY(calc(-8deg + var(--contact-px,0)*1.3deg)) rotateZ(-1.4deg) scale(calc(.98 + var(--cta-reveal,0)*.02));
    box-shadow:inset 0 1px 0 #ffffffba,inset 0 -1px 0 #b7b0c24d,0 calc(11px + var(--cta-near,0)*3px) 20px #00000030,0 27px 37px #06050b2d;
  }
}
@media(min-width:701px) and (max-width:1000px) {
  #contact {--contact-photo-x:38px;--contact-cta-x:-18px}
  #contact .contact-copy>.contact-intro {translate:5px -4px}
}
@media(max-width:700px) {
  #contact {--contact-photo-x:0px;--contact-photo-y:0px;--contact-cta-x:0px}
  #contact .contact-editorial {perspective:none}
  #contact .contact-headline,#contact .theo-portrait,#contact .contact-copy,#contact .contact-details>summary,#contact .portrait-window img {translate:none!important}
  .home-motion #contact .theo-portrait {transform:translateY(calc((1 - var(--portrait-reveal,0))*7px))}
  .home-motion #contact .contact-headline .contact-title {transform:scale(calc(.97 + var(--contact-reveal,0)*.03))}
  #contact .contact-copy>.contact-intro,#contact .contact-copy .contact-response {translate:none}
  .home-motion #contact .contact-details>summary {transform:scale(calc(.99 + var(--cta-reveal,0)*.01))}
  #contact .contact-call {transform:rotate(.7deg);box-shadow:inset 0 1px 0 #ffffff0b,0 2px 0 #625969,0 6px 10px #00000029}
  #contact .theo-portrait:before {transform:translate(1px,2px);box-shadow:1px 4px 7px #04040730,4px 13px 19px #03040828}
  #contact .portrait-window {animation:none}
  #contact .facet-0 {left:5%;top:22%;width:12px;height:24px;opacity:calc(var(--space-visible,0)*.23)}
  #contact .facet-2,#contact .facet-3 {display:none}
  #contact .facet-4 {right:5%;top:83%;width:11px;height:21px;opacity:calc(var(--space-visible,0)*.35)}
  #contact .space-facet {translate:none;transform:none;filter:none}
}
html:not(.home-motion) #contact .portrait-window,
html:not(.home-motion) #contact .portrait-window:after,
html:not(.home-motion) #contact .contact-details>summary:before {animation:none}
@media(prefers-reduced-motion:reduce) {
  #contact .contact-headline,#contact .theo-portrait,#contact .contact-copy,#contact .contact-details>summary,#contact .contact-call,#contact .portrait-window,#contact .portrait-window img {transform:none!important;translate:none!important;rotate:none!important}
  #contact .contact-copy>.contact-intro,#contact .contact-copy .contact-response {translate:none!important}
  #contact .portrait-window,#contact .portrait-window:after,#contact .contact-details>summary:before {animation:none!important}
  #contact .contact-details>summary,#contact .contact-call {transition:none!important}
  #contact .theo-portrait:before {opacity:.82}
}
/* Free-scroll reading frame and an explicit typographic destination. */
.contact-v-slot{display:inline-block;position:relative;line-height:inherit}
.v-dock{position:absolute;left:8%;right:8%;bottom:8%;height:1px;background:linear-gradient(90deg,#a1c3cf66,#c1a5d088);opacity:var(--v-dock,0);pointer-events:none}
.contact-reading-settle{position:fixed;inset:0;z-index:8;pointer-events:none;display:grid;place-items:center;background:radial-gradient(ellipse at 52% 48%,#aaa0c108,transparent 41%),#101112;animation:contact-readable-4198 .32s linear both}
.contact-reading-settle p{font:500 12vw/1.05 Manrope,sans-serif;letter-spacing:-.065em;color:#efedf1;margin:0;white-space:nowrap}
.contact-reading-settle-active .site-header{opacity:0}
@keyframes contact-readable-4198{0%,78%{opacity:1}100%{opacity:0}}
.connected-settle{animation-duration:.32s}
#contact{overflow:clip}
#contact .space-facet{transform:translate3d(calc((1 - var(--space-enter,0))*var(--fly-x)*.45),calc((1 - var(--space-enter,0))*var(--fly-y)*.45),0) scale(calc(1 + (1 - var(--space-enter,0))*1.5));filter:blur(calc((1 - var(--space-enter,0))*1.5px))}
#contact .facet-4{right:-12px;top:71%;width:45px;height:86px;filter:blur(calc(.7px + (1 - var(--space-enter,0))*1.5px))}
@media(max-width:700px){
 .contact-reading-settle p{font-size:clamp(68px,22vw,95px)}
 #contact .space-facet{transform:none;filter:none}
 #contact .facet-4{right:5%;top:83%;width:11px;height:21px;filter:none}
}
html:not(.home-motion) #contact .space-facet{transform:none;filter:none}
@media(prefers-reduced-motion:reduce){.contact-reading-settle{display:none}.v-dock{display:none}#contact .space-facet{transform:none!important;filter:none!important}}
/* 4199 — only the explicitly opened brief has a new composition. */
body.contact-brief-active .site-header{opacity:1!important}
body.contact-brief-active #contact-type-stage,body.contact-brief-active .contact-isolation-field,body.contact-brief-active .contact-follow-light,body.contact-brief-active .contact-reading-settle{visibility:hidden!important}
#contact.brief-open{padding-top:32px;padding-bottom:36px;overflow:clip;--contact-px:0!important;--contact-py:0!important;--cta-near:0!important}
#contact.brief-open>.section-top{margin-bottom:24px}
#contact.brief-open .contact-editorial{max-width:1040px;grid-template-columns:200px minmax(0,1fr);gap:28px 68px;align-items:start}
#contact.brief-open .contact-headline{translate:none!important;transform:none;opacity:1}
#contact.brief-open .contact-title{font-size:clamp(40px,4.2vw,60px)!important;line-height:1.1!important;transform:none!important;filter:none!important;opacity:1!important;margin:0!important}
#contact.brief-open .contact-title br{display:none}
#contact.brief-open .contact-title>span:before{content:' '}
#contact.brief-open .contact-initial,#contact.brief-open .contact-stop{opacity:1!important;scale:1!important;text-shadow:none!important}
#contact.brief-open .v-dock{display:none}
#contact.brief-open .theo-portrait{margin:26px 0 0;align-self:start;opacity:1!important;filter:none!important;translate:none!important;transform:perspective(1000px) translate3d(-8px,5px,-30px) rotateY(7deg) rotateZ(-2deg) scale(.93)}
#contact.brief-open .portrait-window,#contact.brief-open .portrait-window img{translate:none!important;animation-play-state:paused!important}
#contact.brief-open .contact-copy{transform:none!important;translate:none!important;filter:none!important;opacity:1!important}
#contact.brief-open .contact-intro{display:none}
#contact.brief-open .contact-details{position:relative;padding:44px 28px 20px;border:1px solid #c9b7d317;border-radius:5px;background:linear-gradient(135deg,#202025,#18191d 75%);box-shadow:inset 0 1px 0 #d9c9e110,0 22px 50px #0003,1px 2px 0 #a59ab115;opacity:1!important;transform:none!important}
#contact.brief-open .contact-details>summary{position:absolute;top:10px;right:20px;min-height:24px;width:auto;max-width:none;padding:3px 0;margin:0;color:#bdb5c9;background:none;border:0;border-radius:0;box-shadow:none;transform:none!important;translate:none!important;scale:1!important;opacity:1!important;animation:none;font-size:11px;line-height:1.5;gap:15px}
#contact.brief-open .contact-details>summary:before,#contact.brief-open .contact-details>summary:after{display:none}
#contact.brief-open .contact-details>summary>span{font-size:20px;color:#d3c9df}
#contact.brief-open .contact-details>summary:hover{color:#fff}
#contact.brief-open .form-row{display:grid;grid-template-columns:1fr 1fr;gap:20px}
#contact.brief-open label{font-size:12px;color:#ccc4d5;line-height:1.5;margin:0 0 18px}
#contact.brief-open input,#contact.brief-open select,#contact.brief-open textarea{margin-top:7px;background:#11121785;color:#eee9f3;border:1px solid #c8bbd026;border-radius:3px;font-size:14px;line-height:1.5;padding:11px 13px;transition:border-color .18s,box-shadow .18s,background .18s}
#contact.brief-open select{height:46px}
#contact.brief-open textarea{min-height:104px;resize:vertical}
#contact.brief-open input::placeholder,#contact.brief-open textarea::placeholder{color:#99909f}
#contact.brief-open input:focus,#contact.brief-open select:focus,#contact.brief-open textarea:focus{outline:1px solid #b9a7ca44;outline-offset:2px;border-color:#b9a7ca88;box-shadow:0 2px 0 -1px #a9c8d8,0 0 12px #b49dc009;background:#17171e}
#contact.brief-open form>.button{min-height:46px;padding:12px 20px;border:1px solid #e9dff14d;background:linear-gradient(120deg,#f0ebf3,#dcd7e4);color:#28232f;box-shadow:0 3px 0 #a89ab85c,0 8px 20px #0003;transition:transform .18s,box-shadow .18s}
#contact.brief-open form>.button:hover{transform:translateY(-2px);box-shadow:0 3px 0 #b9accb88,0 12px 25px #0004}
#contact.brief-open form>.button:active{transform:translateY(1px) scale(.985)}
#contact.brief-open .contact-prototype-note{margin:13px 0 0;color:#a298ad}
#contact.brief-open .brief-download{margin-top:14px;padding-bottom:3px}
#contact.brief-open .contact-call{transform:none;translate:none;margin-top:18px;opacity:1!important}
#contact.brief-open .contact-response{translate:none;margin-top:10px;opacity:1!important}
#contact.brief-open .space-facet{opacity:.1;filter:none;animation-play-state:paused}
#contact.brief-open .space-facet *,#contact.brief-open .space-facet :after{animation-play-state:paused!important}
#contact.brief-open .portrait-window:after{animation-play-state:paused!important}
@media(max-width:700px){
 #contact.brief-open{padding-top:25px;padding-bottom:38px}
 #contact.brief-open .contact-editorial{display:flex;gap:24px;align-items:center}
 #contact.brief-open .contact-title{font-size:35px!important;line-height:1.1!important}
 #contact.brief-open .contact-title br{display:initial}
 #contact.brief-open .contact-title>span:before{content:none}
 #contact.brief-open .theo-portrait{width:116px;margin:0;align-self:center;transform:none!important}
 #contact.brief-open .theo-portrait figcaption{font-size:11px;line-height:1.4}
 #contact.brief-open .theo-portrait figcaption span:last-child{font-size:9px}
 #contact.brief-open .contact-copy{width:100%}
 #contact.brief-open .contact-details{padding:44px 17px 22px}
 #contact.brief-open .form-row{grid-template-columns:1fr;gap:0}
 #contact.brief-open input,#contact.brief-open select,#contact.brief-open textarea{font-size:16px}
 #contact.brief-open .space-facet{display:none}
 #contact.brief-open .contact-call{margin-left:auto;margin-right:auto}
}
@media(prefers-reduced-motion:reduce){#contact.brief-open *{transition:none!important;animation:none!important}#contact.brief-open .theo-portrait{transform:none!important}}
