/* Wairua motion language: finite entrances, quiet material light, native links.
   Every element is fully visible before JavaScript and after each animation. */
:root { --concept-ease: cubic-bezier(.2,.65,.25,1); }
.concept-enter {
  animation: concept-enter .85s var(--concept-ease) var(--concept-delay,0ms) both;
}
@keyframes concept-enter {
  from { opacity: .25; transform: translate3d(0,18px,0); }
  to { opacity: 1; transform: translate3d(0,0,0); }
}
.concept-image-frame.concept-enter {
  animation-name: concept-image-unveil;
  animation-duration: 1s;
}
@keyframes concept-image-unveil {
  from { opacity: .35; clip-path: inset(0 0 9% 0); transform: translate3d(0,14px,0); }
  to { opacity: 1; clip-path: inset(0); transform: translate3d(0,0,0); }
}
.concept-media > img {
  transform: translate3d(0,var(--concept-pan-y,0px),0) scale(1.035);
  transform-origin: center;
}

/* The system diagram traces its existing connective lines once as it appears. */
.future-overview.concept-in-view .future-area-grid::before {
  transform-origin: center;
  animation: concept-line-across .75s var(--concept-ease) both;
}
.future-overview.concept-in-view .future-area-grid::after,
.future-overview.concept-in-view .future-area::before {
  transform-origin: top;
  animation: concept-line-down .65s var(--concept-ease) .1s both;
}
.future-overview.concept-in-view .future-area:nth-child(2)::before { animation-delay: .18s; }
.future-overview.concept-in-view .future-area:nth-child(3)::before { animation-delay: .26s; }
.future-overview.concept-in-view .future-assessment-connector {
  transform-origin: top;
  animation: concept-line-down .65s var(--concept-ease) .25s both;
}
.concept-motion-ready .future-overview .future-area {
  transition: border-color .6s ease, box-shadow .3s ease, transform .28s ease;
}
.concept-motion-ready .future-overview.concept-in-view .future-area { border-color: #d9c18b; }
.concept-motion-ready .future-overview .future-partnership { position: relative; overflow: hidden; }
.concept-motion-ready .future-overview .future-partnership::after {
  content: "";
  position: absolute;
  pointer-events: none;
  inset: 0;
  opacity: 0;
  background: linear-gradient(110deg,transparent 22%,#fff8d82e 49%,transparent 76%);
  transform: translateX(-100%);
}
.concept-motion-ready .future-overview.concept-in-view .future-partnership::after {
  animation: concept-sheen 1s var(--concept-ease) .1s both;
}
@keyframes concept-line-across {
  from { opacity: .3; transform: scaleX(.08); }
  to { opacity: 1; transform: scaleX(1); }
}
@keyframes concept-line-down {
  from { opacity: .3; transform: scaleY(.08); }
  to { opacity: 1; transform: scaleY(1); }
}

/* Native disclosures remain native: only the newly visible body moves. */
.concept-detail-open > .clarity-detail-body,
.concept-detail-open > .editorial-module-body,
.faq-list .concept-detail-open > p,
.assessment-question-preview.concept-detail-open > p,
.assessment-question-preview.concept-detail-open > .assessment-question-grid {
  animation: concept-detail .35s var(--concept-ease);
}
@keyframes concept-detail {
  from { opacity: .5; transform: translateY(4px); }
  to { opacity: 1; transform: translateY(0); }
}

/* A single light pass on intent. No automatic pulsing or ongoing reflections. */
.concept-motion-ready .btn {
  position: relative;
  isolation: isolate;
  overflow: hidden;
}
.concept-motion-ready .btn::after {
  content: "";
  position: absolute;
  z-index: -1;
  pointer-events: none;
  inset: 0;
  opacity: 0;
  background: linear-gradient(110deg,transparent 22%,#fffaf13b 49%,transparent 76%);
  transform: translateX(-100%);
}
.concept-motion-ready .btn:focus-visible::after { animation: concept-sheen .65s ease-out; }
@keyframes concept-sheen {
  0% { opacity: 0; transform: translateX(-100%); }
  20%,65% { opacity: 1; }
  100% { opacity: 0; transform: translateX(100%); }
}
.concept-motion-ready .contact-form .field label { transition: color .2s ease; }
.concept-motion-ready .contact-form .field:focus-within label { color: #745b28; }
.concept-motion-ready .contact-form input:not([type=checkbox]):focus-visible,
.concept-motion-ready .contact-form select:focus-visible,
.concept-motion-ready .contact-form textarea:focus-visible {
  border-color: #ad9051;
  box-shadow: 0 0 0 4px #b89d6017;
}
.concept-motion-ready .editorial-module { transition: border-color .25s ease; }
.concept-motion-ready .editorial-module[open] { border-top-color: #a88b4d; }
.concept-motion-ready .editorial-service-related-action { text-decoration-thickness: 1px; transition: color .2s ease,text-decoration-color .2s ease; }
.concept-motion-ready .editorial-service-related-link:focus-visible .editorial-service-related-action,
.concept-motion-ready .editorial-service-related-link:hover .editorial-service-related-action {
  color: #725520;
  text-decoration-color: #b79a5b;
}
@media (hover:hover) and (pointer:fine) {
  .concept-motion-ready .btn:hover::after { animation: concept-sheen .65s ease-out; }
  .concept-motion-ready .partner-overview-link,
  .concept-motion-ready .editorial-service-related-link {
    transition: transform .3s var(--concept-ease),border-color .3s ease,box-shadow .3s ease;
  }
  .concept-motion-ready .partner-overview-link:hover { transform: translateY(-4px); box-shadow: 0 13px 30px #4a402109; }
  .concept-motion-ready .editorial-service-related-link:hover { transform: translateY(-2px); }
}

/* Browser-native cross-document fades; unsupported browsers navigate normally. */
@media (prefers-reduced-motion:no-preference) {
  @supports (view-transition-name:none) {
    @view-transition { navigation: auto; }
    ::view-transition-old(root) { animation: concept-page-out .22s ease both; }
    ::view-transition-new(root) { animation: concept-page-in .24s ease both; }
    @keyframes concept-page-out { to { opacity: 0; } }
    @keyframes concept-page-in { from { opacity: 0; } }
  }
}
html:has(.concept-motion-limited)::view-transition-old(root),
html:has(.concept-motion-limited)::view-transition-new(root) { animation: none; }
@media (max-width:900px) {
  .concept-media > img { transform: none; }
}
@media (max-width:760px) {
  .concept-enter { animation-duration: .6s; }
  .concept-image-frame.concept-enter { animation-duration: .7s; }
  @keyframes concept-enter {
    from { opacity: .35; transform: translate3d(0,10px,0); }
    to { opacity: 1; transform: translate3d(0,0,0); }
  }
  @keyframes concept-image-unveil {
    from { opacity: .45; clip-path: inset(0 0 8% 0); transform: translate3d(0,8px,0); }
    to { opacity: 1; clip-path: inset(0); transform: translate3d(0,0,0); }
  }
}
.concept-motion-limited .concept-enter,
.concept-motion-limited .concept-detail-open > *,
.concept-motion-limited .future-overview.concept-in-view *,
.concept-motion-limited .future-overview.concept-in-view *::before,
.concept-motion-limited .future-overview.concept-in-view *::after,
.concept-motion-limited .btn::after {
  animation: none!important;
}
.concept-motion-limited .concept-media > img { transform: none; }
.concept-motion-limited .concept-enter { opacity: 1; clip-path: none; transform: none; }
.concept-motion-limited .btn::after { opacity: 0; }
.concept-motion-limited .contact-form .field label,
.concept-motion-limited .editorial-module,
.concept-motion-limited .partner-overview-link,
.concept-motion-limited .editorial-service-related-link,
.concept-motion-limited .editorial-service-related-action,
.concept-motion-limited .future-overview .future-area { transition: none; }
.concept-motion-limited .partner-overview-link:hover,
.concept-motion-limited .editorial-service-related-link:hover { transform: none; }
@media (prefers-reduced-motion:reduce) {
  .concept-enter,
  .concept-detail-open > *,
  .future-overview.concept-in-view *,
  .future-overview.concept-in-view *::before,
  .future-overview.concept-in-view *::after,
  .concept-motion-ready .btn::after { animation: none!important; }
  .concept-enter { opacity: 1; clip-path: none; transform: none; }
  .concept-media > img { transform: none; }
  .concept-motion-ready .btn::after { opacity: 0; }
  .concept-motion-ready .contact-form .field label,
  .concept-motion-ready .editorial-module,
  .concept-motion-ready .partner-overview-link,
  .concept-motion-ready .editorial-service-related-link,
  .concept-motion-ready .editorial-service-related-action,
  .concept-motion-ready .future-overview .future-area { transition: none; }
  .concept-motion-ready .partner-overview-link:hover,
  .concept-motion-ready .editorial-service-related-link:hover { transform: none; }
  ::view-transition-old(root),::view-transition-new(root) { animation: none!important; }
}
@media print {
  .concept-enter,
  .concept-detail-open > *,
  .future-overview.concept-in-view *,
  .future-overview.concept-in-view *::before,
  .future-overview.concept-in-view *::after,
  .concept-motion-ready .btn::after { animation: none!important; transition: none!important; }
  .concept-enter { opacity: 1; clip-path: none; transform: none; }
  .concept-media > img { transform: none; }
  .concept-motion-ready .btn::after { display: none; }
}
