/* Shared motion and cursor styling for the FÓVEA Studio pages. */
.studio-cursor {
  position: fixed;
  z-index: 10000;
  top: 0;
  left: 0;
  width: 17px;
  height: 17px;
  pointer-events: none;
  opacity: 0;
  filter: drop-shadow(0 0 3px rgb(255 255 255 / .28));
  transition: opacity .14s ease;
  will-change: transform;
}
.studio-cursor svg { display: block; width: 100%; height: 100%; }
body.is-studio-cursor .studio-cursor { opacity: 1; }
@media (hover: hover) and (pointer: fine) {
  body.has-studio-cursor, body.has-studio-cursor * { cursor: none !important; }
  body.has-studio-cursor input,
  body.has-studio-cursor textarea,
  body.has-studio-cursor select,
  body.has-studio-cursor [contenteditable="true"] { cursor: auto !important; }
}

/* The scrollbar brightens during movement, then dims after a short pause. */
:root { scrollbar-width: thin; scrollbar-color: rgb(255 255 255 / .12) transparent; }
:root.is-scrolling { scrollbar-color: rgb(255 255 255 / .58) transparent; }
:root::-webkit-scrollbar { width: 10px; height: 10px; }
:root::-webkit-scrollbar-track { background: transparent; }
:root::-webkit-scrollbar-thumb {
  border: 2px solid transparent;
  border-radius: 8px;
  background: rgb(255 255 255 / .12);
  background-clip: padding-box;
  transition: background-color 1s ease .4s, box-shadow 1s ease .4s;
}
:root.is-scrolling::-webkit-scrollbar-thumb {
  background: rgb(255 255 255 / .58);
  background-clip: padding-box;
  box-shadow: 0 0 8px rgb(255 255 255 / .2);
  transition-duration: .12s;
  transition-delay: 0s;
}

.studio-scroll-reveal {
  opacity: 0;
  transition: opacity .72s ease, translate .82s cubic-bezier(.2,.72,.2,1), scale .82s cubic-bezier(.2,.72,.2,1), rotate .82s cubic-bezier(.2,.72,.2,1), filter .82s ease;
  transition-delay: var(--studio-reveal-delay, 0ms);
  will-change: opacity, translate, scale, rotate, filter;
}
.studio-scroll-reveal--text { translate: 0 22px; filter: blur(3px); }
.studio-scroll-reveal--photo { rotate: y 5deg; scale: .95; filter: brightness(.88) blur(2px); }
.studio-scroll-reveal--card { translate: 0 26px; scale: .975; filter: blur(2px); }
.studio-scroll-reveal--detail { translate: 0 16px; filter: blur(4px); }
.studio-scroll-reveal.is-visible { opacity: 1; translate: none; scale: none; rotate: none; filter: none; will-change: auto; }

body.is-project-transitioning { opacity: 0; filter: blur(2px); transition: opacity .2s ease, filter .2s ease; }
@media (prefers-reduced-motion: reduce) {
  .studio-scroll-reveal, .studio-scroll-reveal--text,
  .studio-scroll-reveal--photo, .studio-scroll-reveal--card, .studio-scroll-reveal--detail {
    opacity: 1; translate: none; scale: none; rotate: none; filter: none; transition: none; will-change: auto;
  }
  body.is-project-transitioning { opacity: 1; filter: none; transition: none; }
}
