/* Shared refinements for the primary pages. */
.nav .wrap{max-width:1520px;}
.brand{
  display:flex;flex-direction:column;align-items:stretch;
  width:min(100%,360px);position:relative;
}
.brand__art{display:block;position:relative;width:100%;line-height:0;}
.brand__art::after{
  content:"";position:absolute;left:29.5%;right:0;bottom:0;height:24.5%;
  background:var(--paper);pointer-events:none;
}
.brand img,.brand__art img{
  display:block;height:auto;width:100%;max-width:none;
  filter:saturate(1.04) contrast(1.04);
}
.brand__tagline{
  display:block;margin-top:-1px;color:var(--crimson);
  font-family:var(--f-data);font-size:clamp(.43rem,.7vw,.64rem);
  font-weight:700;line-height:1.15;letter-spacing:.055em;
  text-align:center;text-transform:uppercase;white-space:nowrap;
}
.foot__logo{
  display:inline-flex;flex-direction:column;align-items:stretch;
  width:min(100%,360px);padding:14px 16px;
}
.foot__logo .brand__art::after{background:#fff;}
.foot__logo img{display:block;height:auto;width:100%;max-width:none;}
.foot__logo .brand__tagline{font-size:clamp(.42rem,.62vw,.58rem);}

@media(min-width:561px) and (max-width:1199px){
  .brand{width:min(50vw,390px);}
  .nav__in{min-height:132px;padding-block:14px;}
}

@media(max-width:560px){
  .brand{width:min(72vw,300px);}
  .brand img,.brand__art img{height:auto;width:100%;max-width:none;}
  .brand__tagline{font-size:clamp(.4rem,1.65vw,.47rem);letter-spacing:.035em;}
  .nav__in{min-height:112px;padding-block:11px;gap:14px;}
  .foot__logo{width:min(100%,310px);}
}

@media(min-width:1041px) and (max-width:1199px){
  .nav__links,.nav__cta{display:none;}
  .nav__burger{display:inline-flex;}
}
@media(min-width:1200px){
  .nav__in{min-height:148px;padding-block:14px;gap:clamp(12px,1.15vw,20px);}
  .brand{flex:0 0 auto;width:clamp(370px,28vw,440px);}
  .nav__links{
    min-width:0;margin-inline:0;gap:clamp(10px,1vw,18px);
    justify-content:space-between;flex-wrap:nowrap;
  }
  .nav__links a{
    flex:0 0 auto;white-space:nowrap;font-family:var(--f-body);
    font-size:clamp(.76rem,.8vw,.85rem);font-weight:700;letter-spacing:.05em;
  }
  .nav__cta{flex:0 0 auto;white-space:nowrap;padding-inline:16px;}
}

.page-progress{
  position:fixed;inset:0 0 auto 0;height:3px;z-index:100;
  background:var(--crimson);transform:scaleX(0);transform-origin:left;
  transition:transform .08s linear;pointer-events:none;
}

.signal-rail{
  overflow:hidden;background:var(--ink-deep);color:#C8D6E6;
  border-bottom:1px solid var(--line-dark);height:38px;
  display:flex;align-items:center;white-space:nowrap;
}
.signal-rail__track{
  display:flex;width:max-content;will-change:transform;
  animation:signalLoop 30s linear infinite;
}
.signal-rail__group{
  display:flex;align-items:center;gap:clamp(20px,3vw,44px);
  flex:0 0 auto;padding-right:clamp(20px,3vw,44px);
}
.signal-rail__group span{
  font-family:var(--f-data);font-size:.63rem;font-weight:600;
  letter-spacing:.16em;text-transform:uppercase;
}
.signal-rail__group i{
  width:5px;height:5px;border-radius:50%;background:var(--teal);
  box-shadow:0 0 0 3px rgba(14,140,134,.16);
}
.signal-rail__group i:nth-of-type(even){background:var(--crimson);box-shadow:0 0 0 3px rgba(200,53,78,.16);}
.signal-rail:hover .signal-rail__track{animation-play-state:paused;}
@keyframes signalLoop{to{transform:translateX(-50%);}}

.evidence-showcase{padding:0 0 clamp(38px,5vw,68px);}
.evidence-flow{
  margin:0;position:relative;border:1px solid var(--line);border-radius:4px;
  overflow:hidden;background:var(--white);
  box-shadow:0 24px 54px -40px rgba(18,35,58,.48);
}
.evidence-flow__media{height:clamp(220px,31vw,350px);position:relative;overflow:hidden;isolation:isolate;}
.evidence-flow__media::before{
  content:"";position:absolute;z-index:2;top:-18%;bottom:-18%;left:-34%;width:24%;
  pointer-events:none;transform:skewX(-14deg);
  background:linear-gradient(90deg,transparent,rgba(255,255,255,.36),transparent);
  animation:flowSweep 6.2s ease-in-out infinite;animation-play-state:paused;
}
.evidence-flow__media::after{
  content:"";position:absolute;inset:0;z-index:1;pointer-events:none;
  background:linear-gradient(90deg,rgba(246,248,250,.96) 0%,rgba(246,248,250,.66) 22%,rgba(246,248,250,0) 51%);
}
.evidence-flow img{
  width:108%;height:108%;max-width:none;object-fit:cover;
  transform:translate3d(-3%,0,0) scale(1.02);will-change:transform;
  animation:flowDrift 10s ease-in-out infinite alternate;
  animation-play-state:paused;
}
.evidence-flow.is-visible img,.evidence-flow.is-visible .evidence-flow__media::before{animation-play-state:running;}
.evidence-flow--home img{object-position:50% 55%;}
.evidence-flow--services img{object-position:62% 53%;}
.evidence-flow--about img{object-position:42% 55%;}
.evidence-flow__caption{
  position:absolute;left:clamp(20px,4vw,48px);bottom:clamp(20px,4vw,42px);
  z-index:3;max-width:min(390px,74%);padding:16px 20px 17px;
  background:rgba(246,248,250,.9);border-left:3px solid var(--crimson);
  backdrop-filter:blur(8px);box-shadow:0 12px 28px -24px rgba(18,35,58,.5);
}
.evidence-flow__caption span{
  display:block;margin-bottom:5px;font-family:var(--f-data);font-size:.62rem;
  font-weight:600;letter-spacing:.15em;text-transform:uppercase;color:var(--teal);
}
.evidence-flow__caption strong{
  display:block;font-family:var(--f-display);font-size:clamp(1.2rem,2.2vw,1.65rem);
  line-height:1.12;font-weight:600;letter-spacing:-.015em;color:var(--ink);
}
.evidence-flow__pulse{
  position:absolute;z-index:3;left:16%;top:57%;width:12px;height:12px;
  border-radius:50%;background:var(--white);border:3px solid var(--crimson);
  box-shadow:0 0 0 7px rgba(200,53,78,.15);
  opacity:0;animation:pulseTravel 5.8s cubic-bezier(.3,.1,.3,1) infinite;
  animation-play-state:paused;
}
.evidence-flow.is-visible .evidence-flow__pulse{animation-play-state:running;}
@keyframes flowDrift{
  from{transform:translate3d(-3%,0,0) scale(1.02);}
  to{transform:translate3d(1.5%,-1.4%,0) scale(1.07);}
}
@keyframes pulseTravel{
  0%{left:18%;opacity:0;transform:scale(.75);}
  12%{opacity:1;}
  78%{opacity:1;transform:scale(1);}
  100%{left:82%;opacity:0;transform:scale(.8);}
}
@keyframes flowSweep{
  0%,12%{left:-34%;opacity:0;}
  22%{opacity:.7;}
  72%{opacity:.7;}
  88%,100%{left:112%;opacity:0;}
}

/* Continuous analytical motion for the home-page evaluation figure. */
.figure--animated .draw{
  stroke-dasharray:600;stroke-dashoffset:600;
  animation:chartTrace 6.8s cubic-bezier(.55,.05,.2,1) infinite;
  animation-play-state:paused;
}
.figure--animated .draw--2{animation-delay:.35s;}
.figure--animated .draw--counter{
  stroke-dasharray:4 4;
  animation:chartCounter 2.2s linear infinite;
  animation-play-state:paused;
}
.figure--animated .fade{
  animation:chartReveal 6.8s ease-in-out infinite;
  animation-play-state:paused;
}
.figure--animated .fade--b{animation-delay:.35s;}
.figure--animated .fade--c,.figure--animated .effect-loop{animation-delay:.65s;}
.figure--animated .node--pulse{
  transform-box:fill-box;transform-origin:center;
  animation:chartNodePulse 3.1s ease-in-out infinite;
  animation-play-state:paused;
}
.figure--animated .policy-rule{
  animation:policyDash 1.8s linear infinite;
  animation-play-state:paused;
}
.figure--animated.is-visible .draw,
.figure--animated.is-visible .fade,
.figure--animated.is-visible .node--pulse,
.figure--animated.is-visible .policy-rule{animation-play-state:running;}
@keyframes chartTrace{
  0%,7%{stroke-dashoffset:600;opacity:.28;}
  34%,82%{stroke-dashoffset:0;opacity:1;}
  96%,100%{stroke-dashoffset:-28;opacity:.28;}
}
@keyframes chartCounter{to{stroke-dashoffset:-24;}}
@keyframes chartReveal{
  0%,18%{opacity:0;}
  34%,82%{opacity:1;}
  96%,100%{opacity:0;}
}
@keyframes chartNodePulse{
  0%,18%{opacity:0;transform:scale(.72);}
  34%,70%{opacity:1;transform:scale(1);}
  82%{opacity:1;transform:scale(1.45);}
  96%,100%{opacity:0;transform:scale(.8);}
}
@keyframes policyDash{to{stroke-dashoffset:-16;}}

.foot__address{color:#A9BCD1;line-height:1.55;}

@media(max-width:720px){
  .evidence-showcase{padding-bottom:34px;}
  .evidence-flow__media{height:260px;}
  .evidence-flow__media::after{background:linear-gradient(0deg,rgba(246,248,250,.95) 0%,rgba(246,248,250,.1) 62%);}
  .evidence-flow__caption{left:16px;right:16px;bottom:16px;max-width:none;padding:13px 16px 14px;}
  .evidence-flow__pulse{top:42%;}
}

@media(prefers-reduced-motion:reduce){
  .page-progress{transition:none;}
  .signal-rail__track,.evidence-flow img,.evidence-flow__pulse,.evidence-flow__media::before,
  .figure--animated .draw,.figure--animated .fade,.figure--animated .node--pulse,.figure--animated .policy-rule{animation:none !important;}
  .signal-rail__group:nth-child(2){display:none;}
  .evidence-flow img{transform:none;width:100%;height:100%;}
  .evidence-flow__pulse{display:none;}
  .evidence-flow__media::before{display:none;}
  .figure--animated .draw{stroke-dashoffset:0;opacity:1;}
  .figure--animated .fade,.figure--animated .node--pulse{opacity:1;transform:none;}
}
