/* A single orange dot follows the pointer, without a ring or hover label. */
.cursor-dot{position:fixed;top:0;left:0;width:7px;height:7px;border:0;border-radius:50%;background:#ff6b00;pointer-events:none;z-index:9999;opacity:0;transition:opacity .2s;will-change:transform}.pointer-motion .cursor-dot.is-active{opacity:1}.modal-open .cursor-dot{opacity:0!important}
.pointer-aura{position:absolute;width:260px;height:260px;border-radius:50%;left:calc(50% - 130px);top:calc(46% - 130px);pointer-events:none;z-index:-1;background:radial-gradient(circle,#ff6b0020 0%,#ff6b0008 38%,transparent 68%);opacity:0;transition:opacity .6s}.motion-on .hero.pointer-over .pointer-aura{opacity:1;transform:translate(calc(var(--mouse-x,0px)*12),calc(var(--mouse-y,0px)*12))}
/* Re-enter from the appropriate edge when scrolling up or down. */
.motion-on .reveal-ready{transition:opacity .7s cubic-bezier(.16,1,.3,1),translate .85s cubic-bezier(.16,1,.3,1),scale .85s cubic-bezier(.16,1,.3,1);transition-delay:var(--reveal-delay,0ms)}.motion-on .reveal-ready:not(.is-visible){opacity:0;translate:0 var(--entry-y,65px)}.motion-on .reveal-ready.is-visible{opacity:1;translate:0 0;scale:1}.motion-on .project.reveal-ready:not(.is-visible),.motion-on .partner-bubble.reveal-ready:not(.is-visible){scale:.72}.motion-on .reveal-ready:focus-within{opacity:1;translate:0 0;scale:1}
/* Independent depths for portrait, headline, orbital artwork and mouse. */
.motion-on .hero .portrait{transform:translate3d(calc(var(--mouse-x,0px)*-.8),calc(var(--hero-scroll,0px) + var(--mouse-y,0px)*-.8),0) scale(1.09);will-change:transform}.motion-on .hero-copy{transform:translate3d(calc(var(--mouse-x,0px)*.5),calc(var(--copy-scroll,0px) + var(--mouse-y,0px)*.5),0);will-change:transform}.motion-on .orbital-art{transform:translate3d(calc(var(--mouse-x,0px)*1.3),calc(var(--orbit-scroll,0px) + var(--mouse-y,0px)*1.3),0);will-change:transform}.motion-on .orbit-one{transform:rotate(var(--orbit-turn,0deg));animation-duration:25s}.motion-on .orbit-two{transform:rotate(calc(25deg - var(--orbit-turn,0deg)));animation-duration:32s}.motion-on .ring-disc{translate:calc(var(--mouse-x,0px)*-1.8) calc(var(--mouse-y,0px)*-1.8);animation:ring-breathe 6s ease-in-out infinite}.motion-on .orb-orange{animation:orb-breathe 5s ease-in-out infinite}.motion-on .profile-image>img{transform:translateY(var(--profile-drift,0px)) scale(1.16);will-change:transform}.motion-on .tiny-star,.motion-on .profile-star,.motion-on .band-star{transform:rotate(var(--star-turn,0deg));will-change:transform}.motion-on .section h2{transform:skewY(var(--scroll-skew,0deg));transform-origin:0 50%}.motion-on .type-band>span:first-child{transform:translateX(var(--drift,0px));will-change:transform}.motion-on .hero-bottom a>span{display:inline-block;animation:scroll-arrow 1.8s ease-in-out infinite}.motion-on[data-scroll-direction=up] .hero-bottom a>span{animation-direction:reverse}
/* The circles move at alternating depths, with gentle tilt on hover. */
.motion-on .project{transform:translateY(var(--float-y,0px));will-change:transform}.motion-on .project-visual{transform:perspective(700px) rotateX(var(--tilt-x,0deg)) rotateY(var(--tilt-y,0deg));transition:transform .35s ease-out,box-shadow .3s,background .3s;will-change:transform}.motion-on .partner-bubble{transform:translateY(var(--float-y,0px)) perspective(700px) rotateX(var(--tilt-x,0deg)) rotateY(var(--tilt-y,0deg));will-change:transform}.pointer-motion .nav-contact,.pointer-motion .hero-copy .text-link{transform:translate(var(--mag-x,0px),var(--mag-y,0px));transition:transform .25s ease-out,background .25s,color .25s}.pointer-motion .contact-title>span{transform:translate(var(--mag-x,0px),var(--mag-y,0px));transition:transform .25s ease-out}.motion-on .contact-title:hover>span{transform:translate(calc(var(--mag-x,0px) + 10px),calc(var(--mag-y,0px) - 10px))}.motion-on .service-list details[open] .service-body{animation:detail-open .5s ease-out both}.motion-on dialog[open]{animation:dialog-in .3s ease-out both}.motion-on .project-open,.motion-on .partner-arrow{transition:rotate .3s,scale .3s}.motion-on .partner-bubble:hover .partner-arrow{rotate:45deg;scale:1.2}
@keyframes ring-breathe{0%,100%{scale:1}50%{scale:1.13}}@keyframes orb-breathe{0%,100%{scale:1;box-shadow:0 0 0 0 #ff6b0020}50%{scale:1.1;box-shadow:0 0 0 18px #ff6b0000}}@keyframes scroll-arrow{0%,100%{translate:0 -3px;opacity:.6}50%{translate:0 5px;opacity:1}}@keyframes detail-open{from{opacity:0;transform:translateY(-12px)}to{opacity:1;transform:translateY(0)}}@keyframes dialog-in{from{opacity:0;scale:.96;translate:0 18px}to{opacity:1;scale:1;translate:0 0}}
@media(max-width:700px){.motion-on .hero-copy{transform:translateY(calc(var(--copy-scroll,0px)*.35))}.motion-on .hero .portrait{transform:translateY(calc(var(--hero-scroll,0px)*.5)) scale(1.07)}.motion-on .section h2{transform:none}.motion-on .reveal-ready:not(.is-visible){translate:0 calc(var(--entry-y,65px)*.6)}.motion-on .project.reveal-ready:not(.is-visible),.motion-on .partner-bubble.reveal-ready:not(.is-visible){scale:.86}.pointer-aura{display:none}}
@media(hover:none),(pointer:coarse){.cursor-dot,.pointer-aura{display:none!important}}
@media(prefers-reduced-motion:reduce){.cursor-dot,.pointer-aura{display:none!important}.reveal-ready,.reveal-ready:not(.is-visible){opacity:1!important;translate:none!important;scale:1!important}.hero .portrait,.hero-copy,.orbital-art,.orbit,.ring-disc,.profile-image>img,.section h2,.project,.project-visual,.partner-bubble,.tiny-star,.profile-star,.band-star,.type-band>span:first-child,.nav-contact{transform:none!important;will-change:auto!important}.orbit{rotate:none!important}*{animation:none!important;transition:none!important}}
