/* Shared motion only: layout, type, and existing interaction transforms stay intact. */
:root { --motion-ease: cubic-bezier(.22,.72,.18,1); }
.motion-cursor { position: fixed; inset: 0 auto auto 0; width: 0; height: 0; z-index: 12000; pointer-events: none; opacity: 0; mix-blend-mode: difference; color: #fff; transition: opacity 160ms var(--motion-ease); }
.motion-cursor.is-visible { opacity: 1; }
.motion-cursor-disc { position: absolute; left: -26px; top: -26px; width: 52px; height: 52px; border-radius: 50%; background: #fff; transform: scale(.1154); transition: transform 320ms var(--motion-ease); }
.motion-cursor-label { position: absolute; inset: -26px auto auto -26px; width: 52px; height: 52px; display: grid; place-items: center; color: #000; font: 400 10px/1 'Outfit', sans-serif; letter-spacing: .015em; white-space: nowrap; opacity: 0; transition: opacity 180ms var(--motion-ease); }
.motion-cursor[data-mode="view"], .motion-cursor[data-mode="scroll"], .motion-cursor[data-mode="drag"] { mix-blend-mode: normal; }
.motion-cursor[data-mode="view"] .motion-cursor-disc,
.motion-cursor[data-mode="scroll"] .motion-cursor-disc,
.motion-cursor[data-mode="drag"] .motion-cursor-disc { transform: scale(1); }
.motion-cursor[data-mode="view"] .motion-cursor-label,
.motion-cursor[data-mode="scroll"] .motion-cursor-label,
.motion-cursor[data-mode="drag"] .motion-cursor-label { opacity: 1; }
.motion-cursor[data-mode="link"] .motion-cursor-disc { transform: scale(.19); }
.motion-cursor[data-mode="cta"] .motion-cursor-disc { transform: scale(.3); }
.motion-cursor::after { content: ''; position: absolute; left: -20px; top: -20px; width: 40px; height: 40px; border-radius: 50%; background: radial-gradient(circle, #fff8 0, #fff2 35%, transparent 70%); opacity: 0; transform: scale(.6); transition: opacity 320ms var(--motion-ease), transform 320ms var(--motion-ease); }
.motion-cursor[data-mode="cta"]::after { opacity: .8; transform: scale(1.25, .85); }
html.has-motion-cursor, html.has-motion-cursor * { cursor: none !important; }
html.has-motion-cursor input, html.has-motion-cursor textarea, html.has-motion-cursor [contenteditable="true"] { cursor: text !important; }
html.has-motion-cursor video[controls], html.has-motion-cursor select { cursor: auto !important; }
html.motion-system-ready .nf-torch { display: none !important; }
.motion-heading, .motion-image { translate: 0 var(--motion-drift-y, 0px); }
/* Reuse the existing plate/statement reveals with the same non-bouncy easing. */
.pd-reveal .pd-plate { transition-duration: 650ms; transition-timing-function: var(--motion-ease); }
.home-statement-line, .home-cta-ghost, .project-tile { transition-timing-function: var(--motion-ease); }
@media (max-width: 760px), (pointer: coarse) {
  .motion-cursor { display: none; }
  .motion-heading, .motion-image { translate: none; }
  .home-motion-ready .home-hero-surface,
  .home-motion-ready .home-statement-section,
  .home-motion-ready .home-cta-video,
  .home-motion-ready .home-cta-links { transform: none; opacity: 1; }
  .home-motion-ready .home-cta::after { transform: translate3d(0, -100%, 0); }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto !important; }
  .motion-cursor { display: none; }
  .motion-heading, .motion-image { translate: none !important; }
  .pd-reveal .pd-plate { transform: none; clip-path: none; transition: none; }
}
