/* Full motion on touch; layout repairs never substitute a lighter animation mode. */
html.js #loader:not(.done) ~ #hero { visibility:hidden; }
@media (max-width:900px) {
  :root, .svc-in { scrollbar-width:none; }
  :root::-webkit-scrollbar, .svc-in::-webkit-scrollbar { display:none; }
  .svc-cv { pointer-events:none; }
  .svc-in { padding-bottom:max(7vh, calc(env(safe-area-inset-bottom) + 28px)); }
  .svc-top { position:sticky; top:0; z-index:2; background:#070a09; }
  .svc-top::before { content:""; position:absolute; inset:-20px -20px 0; background:inherit; z-index:-1; pointer-events:none; }

  /* A tall chapter is read completely before the original stack steps back. */
  .chstack .ch { position:relative; height:auto; min-height:100svh; }
  .ch .stage { height:auto; min-height:100svh; transform-origin:50% 30%; will-change:auto; }
  .touch-stack .chstack .ch { position:sticky; top:var(--chapter-top,0px); height:var(--chapter-height,100svh); }
  .touch-stack .ch .stage { height:100%; }
  .ch .chwrap { padding-bottom:84px; }
  [dir=rtl] .cname h3 { line-height:1.4; letter-spacing:0; }
  .marq { touch-action:pan-y; }
  .marq.touching .mtrack { animation-play-state:paused; }

  /* Same full light sweep, composited as two counter-translated text layers. */
  html:not(#mobile) .tm-row b { position:relative; background:none; color:rgba(var(--inkrgb),.74); line-height:1.4; }
  .tm-name-light { position:absolute; inset:0; overflow:hidden; pointer-events:none; transform:translateX(-102%); transition:transform 1s cubic-bezier(.22,1,.36,1); }
  .tm-name-light > span { display:block; transform:translateX(102%); transition:transform 1s cubic-bezier(.22,1,.36,1); color:transparent; background:linear-gradient(100deg,var(--turq),#35d9a0 50%,var(--grape)); -webkit-background-clip:text; background-clip:text; padding:.06em 0 .22em; }
  [dir=rtl] .tm-name-light { transform:translateX(102%); }
  [dir=rtl] .tm-name-light > span { transform:translateX(-102%); }
  .tm-row.on .tm-name-light, .tm-row.on .tm-name-light > span { transform:none; }
  html:not(#mobile)[data-theme=light] .tm-row b { color:rgba(16,22,20,.6); }
  :root[data-theme=light] .tm-name-light > span { background-image:linear-gradient(100deg,#00705f,#00866f 50%,#6a35b0); }
  .pi.in-view .pi-row::before { opacity:1; }
  .pi.in-view .pi-no { color:rgb(var(--pac)); }
  .pi.in-view .pi-nm b { transform:translateX(calc(var(--pid,1) * 10px)); }
  .jr-steps { position:relative; }
  .jr-steps::before { content:""; position:absolute; top:0; bottom:0; inset-inline-start:-2px; width:2px; background:linear-gradient(var(--turq),var(--grape)); transform-origin:50% 0; transform:scaleY(var(--journey,0)); }
  .jr-steps li { opacity:.22; transform:translate3d(0,16px,0); filter:blur(4px); transition:opacity .8s, transform .8s cubic-bezier(.2,.7,.2,1), filter .8s; }
  .jr-steps li.on { opacity:1; transform:none; filter:none; }
}
:root #clients .cl .cllogo, :root[data-theme] #clients .cl .cllogo { opacity:1; }

/* A lifted finger must not leave Safari's emulated :hover freezing the strip. */
@media (pointer:coarse) {
  .marq:not(.touching) .mtrack { animation-play-state:running; }
}
