/* Interazioni condivise con la landing: solo puntatore, niente alone fisso. */
:root{--violet:#5200ff;--lime:#ccff00}.opening:before{content:none!important}body>main{position:relative;z-index:1}.project-pointer-glow{position:fixed;inset:0;z-index:0;pointer-events:none;opacity:0;background:radial-gradient(circle 10rem at var(--mx) var(--my),rgba(204,255,0,.92),rgba(204,255,0,.3) 42%,transparent 72%),radial-gradient(circle 38rem at var(--mx) var(--my),rgba(82,0,255,.34),transparent 68%);transition:opacity .2s}.project-pointer-glow.visible{opacity:1}@media(hover:none),(pointer:coarse){.project-pointer-glow{display:none}}
.custom-cursor { position:fixed; top:0; left:0; width:0; height:0; z-index:1000; pointer-events:none; opacity:0; will-change:transform; }
.custom-cursor.visible { opacity:1; }
.cursor-dot { position:absolute; width:10px; height:10px; left:-5px; top:-5px; border-radius:50%; background:var(--violet); transition:transform .22s ease; box-shadow:0 0 0 1px rgba(255,255,255,.3); }
@media (hover:hover) and (pointer:fine) { html.custom-cursor-active,html.custom-cursor-active * { cursor:none!important; } }
@media (hover:none),(pointer:coarse) { .custom-cursor { display:none; } }
.custom-cursor .cursor-dot { transition:width .2s,height .2s,left .2s,top .2s,background .2s; }
.custom-cursor:not(.interactive) .cursor-dot { background:transparent; border:1.5px solid var(--violet); box-shadow:none; }
@keyframes cursor-orbit-swap { 0%,35% {transform:rotate(0deg)} 50%,85% {transform:rotate(180deg)} 100% {transform:rotate(360deg)} }
.custom-cursor.interactive:not(.loading) .cursor-dot { width:10px;height:10px;left:-5px;top:-5px;border:0;border-radius:50%;background:var(--lime);animation:cursor-bounce-color 1.8s ease-in-out infinite; }
.custom-cursor.interactive:not(.loading) .cursor-dot::before,.custom-cursor.interactive:not(.loading) .cursor-dot::after { content:none; }
@keyframes cursor-bounce-color { 0%,15%,100% {transform:scale(1);background:var(--lime)} 32% {transform:scale(1.9);background:var(--lime)} 50%,65% {transform:scale(1);background:var(--violet)} 82% {transform:scale(1.9);background:var(--violet)} }
.custom-cursor.loading .cursor-dot,.media-loader { width:22px;height:22px;border:0;border-radius:50%;background:none;clip-path:none;animation:cursor-orbit-swap 1.8s ease-in-out infinite; }
.custom-cursor.loading .cursor-dot {left:-11px;top:-11px;}
.custom-cursor.loading .cursor-dot::before,.custom-cursor.loading .cursor-dot::after,.media-loader::before,.media-loader::after {content:'';position:absolute;width:7px;height:7px;left:50%;top:50%;margin:-3.5px;border-radius:50%;}
.custom-cursor.loading .cursor-dot::before,.media-loader::before {background:var(--violet);transform:translate(6px,-6px);}
.custom-cursor.loading .cursor-dot::after,.media-loader::after {background:var(--lime);transform:translate(-6px,6px);}
@media(prefers-reduced-motion:reduce){.custom-cursor.interactive:not(.loading) .cursor-dot,.custom-cursor.loading .cursor-dot,.media-loader{animation:none;}}
