.project-title a { color: inherit; text-decoration: none; }
.project-title a:hover { text-decoration: underline; text-underline-offset: 4px; }
.project-title a:focus-visible { outline: 2px solid currentColor; outline-offset: 5px; }
.project-title a span { font: 0.6em Helvetica, Arial, sans-serif; }
.project-preview { display: none; }
@media (min-width: 769px) and (hover: hover) and (pointer: fine) {
  .project-preview {
    display: block;
    position: fixed;
    top: 0;
    left: 0;
    width: clamp(180px, 22vw, 300px);
    height: clamp(125px, 15vw, 205px);
    z-index: 1000;
    pointer-events: none;
    opacity: 0;
    visibility: hidden;
    transform: translate3d(-1000px, -1000px, 0);
    transition: opacity 160ms ease, visibility 160ms;
    will-change: transform;
    filter: drop-shadow(0 12px 18px rgb(0 0 0 / 15%));
  }
  .project-preview img { width: 100%; height: 100%; display: block; object-fit: cover; background: #eee; }
  .project-preview.is-visible { opacity: 1; visibility: visible; }
  body.has-project-preview, body.has-project-preview * { cursor: none !important; }
}
@media (prefers-reduced-motion: reduce) {
  .project-preview { transition: none; }
}
@media print { .project-preview { display: none; } }
