.project-preview{position:relative;overflow:hidden;background:#121517;width:100%;aspect-ratio:8/5;isolation:isolate;border:1px solid #ffffff1c;border-radius:7px;margin:0 0 24px}
.project-preview img{position:absolute!important;inset:0;width:100%!important;height:100%!important;object-fit:cover!important;object-position:top!important;margin:0!important;border-radius:0!important;transition:opacity .5s ease,filter .5s ease,transform .65s ease}
.project-preview .project-real{opacity:0;transform:scale(1.025)}
.project-preview .project-dots{opacity:1;filter:grayscale(1) sepia(.45) hue-rotate(65deg) saturate(.65) brightness(1.3) contrast(1.15);mask-image:radial-gradient(circle at center,#000 1.45px,transparent 1.8px);mask-size:4px 4px;-webkit-mask-image:radial-gradient(circle at center,#000 1.45px,transparent 1.8px);-webkit-mask-size:4px 4px}
.project-preview:after{content:'';position:absolute;inset:0;pointer-events:none;background:repeating-linear-gradient(0deg,transparent 0 3px,#0002 3px 4px);transition:opacity .4s}
.preview-hint{position:absolute;bottom:12px;right:12px;background:#0c150fed;color:#c0d8af;border:1px solid #87987855;padding:7px 10px;font:9px monospace;letter-spacing:.1em;z-index:2;transition:opacity .25s}
@media(hover:hover){a:hover>.project-preview .project-real,a:hover .card-image .project-real{opacity:1;transform:none}a:hover>.project-preview .project-dots,a:hover .card-image .project-dots,a:hover .project-preview:after,a:hover .preview-hint{opacity:0}}
a:focus-visible .project-real{opacity:1;transform:none}a:focus-visible .project-dots,a:focus-visible .project-preview:after,a:focus-visible .preview-hint{opacity:0}
.card-image:has(.project-preview){aspect-ratio:8/5;background:none}.card-image .project-preview{height:100%;margin:0;border:0;border-radius:0}
@media(hover:none){.preview-hint{display:none}.project-preview .project-real{opacity:1;transform:none}.project-preview .project-dots,.project-preview:after{opacity:0}}
@media(prefers-reduced-motion:reduce){.project-preview img,.project-preview:after{transition:none}}
