/* v0.5.31 — All-page ribbons with synced 42s, seamless bidirectional marquees */
body.critlab-site-template-active .main{overflow-x:clip;}
body.critlab-site-template-active .crit-tape-zone{
  position:relative; width:100%; height:155px; margin:0; padding:0;
  z-index:3; pointer-events:none; overflow:visible;
  background:transparent;
  --tape-h:54px; --tape-fs:26px; --tape-gap:24px;
}
body.critlab-site-template-active .crit-tape-zone-cross{height:280px;}
body.critlab-site-template-active .crit-tape-ribbon{
  position:absolute; left:50%; top:50%;
  width:max(180%, 1400px); height:var(--tape-h);
  background:#FFDA4C; color:#fff;
  white-space:nowrap; display:flex; align-items:center;
  overflow:hidden;
  transform-origin:center; box-sizing:border-box;
}
/* Keep rotation fixed on the ribbon, and move only its repeating text. */
body.critlab-site-template-active .crit-tape-viewport{
  position:relative; width:100%; height:100%; overflow:hidden;
}
body.critlab-site-template-active .crit-tape-track{
  display:flex; width:max-content; height:100%; align-items:center;
  animation:critlab-tape-scroll 42s linear infinite;
  will-change:transform;
}
body.critlab-site-template-active .crit-tape-repeat{
  display:flex; flex:none; align-items:center; height:100%;
  gap:var(--tape-gap); padding:0 0 0 0;
  font-family:"Poppins",sans-serif; font-weight:600;
  font-size:var(--tape-fs); line-height:1.1; letter-spacing:0;
}
body.critlab-site-template-active .crit-tape-repeat span{flex:none;margin-right:0;}
/* Each half is identical: spacing is ensured across the seam using each word's padding. */
body.critlab-site-template-active .crit-tape-repeat span{padding-right:var(--tape-gap);}
body.critlab-site-template-active .crit-tape-repeat{gap:0;}
/* Front (z-index:2) ribbon travels left; rear (z-index:1) ribbon travels right. */
body.critlab-site-template-active .crit-tape-a-one .crit-tape-track{
  animation-direction:reverse;
}
@keyframes critlab-tape-scroll{
  from{transform:translate3d(0,0,0);}
  to{transform:translate3d(-50%,0,0);}
}
@media(prefers-reduced-motion:reduce){
  body.critlab-site-template-active .crit-tape-track{animation:none;will-change:auto;}
}
/* Off-centre, deliberately asymmetric crossing */
body.critlab-site-template-active .crit-tape-a-one{top:42%;transform:translate(-57%,-50%) rotate(5deg);z-index:1;}
body.critlab-site-template-active .crit-tape-a-two{top:49%;transform:translate(-44%,-50%) rotate(-7deg);z-index:2;}
body.critlab-site-template-active .crit-tape-single{top:50%;transform:translate(-52%,-50%) rotate(-7deg);}
/* Alternate direction for successive standalone tapes on each page. */
body.critlab-site-template-active .crit-tape-direction-positive .crit-tape-single{
  transform:translate(-48%,-50%) rotate(7deg);
}
/* The tape is in page flow, so the neighboring sections never clip it. */
@media(max-width:767px){
  body.critlab-site-template-active .crit-tape-zone{height:110px;--tape-h:46px;--tape-fs:16px;--tape-gap:14px;}
  body.critlab-site-template-active .crit-tape-zone-cross{height:210px;}
  body.critlab-site-template-active .crit-tape-ribbon{width:max(240%, 760px);}
  body.critlab-site-template-active .crit-tape-a-one{transform:translate(-57%,-50%) rotate(6deg);}
  body.critlab-site-template-active .crit-tape-a-two{transform:translate(-43%,-50%) rotate(-8deg);}
}

/* FAQ top uses A-style asymmetrical crossing; no bottom ribbon. */

/* v0.5.30: second (and every other) standalone ribbon tilts the opposite way. */
@media(max-width:767px){
  body.critlab-site-template-active .crit-tape-zone-single .crit-tape-single{transform:translate(-52%,-50%) rotate(-6deg);}
  body.critlab-site-template-active .crit-tape-direction-positive .crit-tape-single{transform:translate(-48%,-50%) rotate(6deg);}
}
