/* TAC V1.0.5 — resilient motion layer. Progressive enhancement only. */
:root{
  --tac-motion-fast:160ms;
  --tac-motion-medium:240ms;
  --tac-motion-slow:360ms;
  --tac-motion-ease:cubic-bezier(.2,.75,.25,1);
}

/* Same-origin multi-page navigation. Unsupported browsers navigate normally. */
@view-transition{navigation:auto;}
::view-transition-old(root){
  animation:tac-page-out 150ms cubic-bezier(.4,0,1,1) both;
}
::view-transition-new(root){
  animation:tac-page-in 260ms var(--tac-motion-ease) both;
}
@keyframes tac-page-out{
  to{opacity:0;transform:translateY(-5px) scale(.998);filter:blur(1px)}
}
@keyframes tac-page-in{
  from{opacity:0;transform:translateY(10px) scale(.998);filter:blur(2px)}
  to{opacity:1;transform:none;filter:none}
}

/* Controlled feedback: only elements that are already interactive move. */
a[href],button,[role="tab"],[role="button"],input[type="range"]{
  -webkit-tap-highlight-color:transparent;
}
button,a[href], [role="tab"], [role="button"]{
  transition:transform var(--tac-motion-fast) var(--tac-motion-ease),
             border-color var(--tac-motion-fast) ease,
             background-color var(--tac-motion-fast) ease,
             color var(--tac-motion-fast) ease,
             box-shadow var(--tac-motion-fast) ease,
             opacity var(--tac-motion-fast) ease;
}
button:active,a[href]:active,[role="tab"]:active,[role="button"]:active{
  transform:translateY(1px) scale(.992);
}

/* Visual state changes are brief and directional, not decorative. */
.tac-content-enter{
  animation:tac-content-enter var(--tac-motion-medium) var(--tac-motion-ease) both;
}
@keyframes tac-content-enter{
  from{opacity:.25;transform:translateY(8px) scale(.995)}
  to{opacity:1;transform:none}
}

#caseImage,#signatureImage,[data-direction-image],#scene,.lens-layer,.evidence-pop,.delivery-detail{
  will-change:opacity,transform;
}
.image-frame.is-switching img{
  opacity:.35;
  transform:scale(.992);
}
.image-frame img,
.direction-stage img,
.viewer img,
#signatureImage{
  transition:opacity 200ms ease,transform 260ms var(--tac-motion-ease),filter 220ms ease;
}

/* Gentle depth for meaningful cards only; no fake click affordance on static text blocks. */
[data-case-target],[data-signature-case],[data-lens-target],
.direction-tabs button,.evidence-toggle,.delivery-row button,
.asset-filter button,.package-card a,.case-card a{
  transform-origin:center;
}
@media (hover:hover) and (pointer:fine){
  [data-case-target]:hover,[data-signature-case]:hover,[data-lens-target]:hover,
  .direction-tabs button:hover,.evidence-toggle:hover,.delivery-row button:hover,
  .asset-filter button:hover{
    transform:translateY(-2px);
  }
}

/* A broken optional responsive candidate retries the original master asset. */
img.tac-image-retrying{opacity:.35;filter:saturate(.65)}
.tac-image-failure{
  min-height:180px;
  display:grid;
  place-items:center;
  padding:24px;
  border:1px solid rgba(212,175,55,.42);
  background:linear-gradient(135deg,rgba(212,175,55,.06),rgba(255,255,255,.02));
  color:inherit;
  font:600 .75rem/1.5 ui-monospace,SFMono-Regular,Consolas,monospace;
  letter-spacing:.08em;
  text-transform:uppercase;
}

@media (prefers-reduced-motion:reduce){
  @view-transition{navigation:none;}
  ::view-transition-old(root),::view-transition-new(root){animation:none!important;}
  *,*::before,*::after{
    scroll-behavior:auto!important;
    animation-duration:.001ms!important;
    animation-iteration-count:1!important;
    transition-duration:.001ms!important;
  }
  button:active,a[href]:active,[role="tab"]:active,[role="button"]:active{transform:none;}
}
