/* Pointer interactions are optional; native cursors and keyboard navigation remain available. */
.pointer-light{position:fixed;inset:0;pointer-events:none;z-index:1;opacity:0;background:radial-gradient(480px circle at var(--px,50%) var(--py,30%),#b59aff12,transparent 72%);transition:opacity .4s}body.pointer-active .pointer-light{opacity:1}main,footer{position:relative;z-index:2}.portraitbox{perspective:1000px}.portraitframe{transition:transform .45s cubic-bezier(.2,.7,.2,1);transform:perspective(1000px) rotateX(var(--rx,0deg)) rotateY(var(--ry,0deg)) rotate(3deg)}.portraitframe:after{content:'';position:absolute;inset:0;pointer-events:none;background:radial-gradient(circle at var(--hx,50%) var(--hy,50%),#fff2,transparent 60%);opacity:0;transition:opacity .3s}.portraitbox:hover .portraitframe:after{opacity:1}.skillpanel,.quote,.credential,.stat{position:relative}.skillpanel:after{content:'';position:absolute;inset:0;border-radius:inherit;pointer-events:none;background:radial-gradient(350px circle at var(--hx,50%) var(--hy,50%),#b59aff18,transparent 70%);opacity:0;transition:opacity .3s}.skillpanel:hover:after{opacity:1}.credential{transition:border-color .25s,translate .25s}.credential:hover{border-color:var(--purple);translate:0 -4px}.stat{transition:translate .25s}.stat:hover{translate:0 -4px}.contactlinks a span{transition:transform .25s}.contactlinks a:hover span{transform:translate(5px,-5px)}.motion-toggle{background:transparent;color:var(--muted);border:1px solid var(--line);border-radius:100px;padding:7px 13px;font-size:10px}.motion-toggle:hover{color:var(--lime);border-color:var(--lime)}.btn,.navcta{translate:var(--mx,0px) var(--my,0px);transition:translate .2s ease-out,background .2s,transform .2s}.pointer-hint{display:flex;align-items:center;gap:9px;color:var(--muted);font-size:10px;letter-spacing:1px;margin-top:25px}.pointer-hint:before{content:'↔';color:var(--purple);font-size:19px}.effects-off .pointer-light{display:none}.effects-off *, .effects-off *:before,.effects-off *:after{animation:none!important;transition:none!important}.effects-off .reveal{opacity:1!important;transform:none!important}.effects-off .portraitframe{transform:rotate(3deg)}.effects-off .btn,.effects-off .navcta{translate:0 0}.effects-off .portraitframe:after,.effects-off .skillpanel:after{display:none}@media(hover:none),(pointer:coarse){.pointer-light,.pointer-hint{display:none}.portraitframe{transform:rotate(3deg)!important}.btn,.navcta{translate:0 0!important}}@media(prefers-reduced-motion:reduce){.pointer-light,.pointer-hint{display:none}.portraitframe{transform:rotate(3deg)!important}.btn,.navcta{translate:0 0!important}}
