/* Kinetic edition: progressive enhancement, no scroll interception. */
body{overflow-x:clip}
.hero{isolation:isolate}
.hero-image{transform:scale(1.08) translate3d(var(--hx,0px),var(--hy,0px),0);transition:transform 1s cubic-bezier(.2,.7,.2,1);will-change:transform}
.hero h1{perspective:1000px;position:relative;z-index:2}
.hero h1 .letter{display:inline-block;transform-origin:50% 100%;animation:letter-arrive 1.5s cubic-bezier(.16,1,.3,1) both;animation-delay:calc(var(--i)*65ms)}
@keyframes letter-arrive{from{opacity:0;transform:translate3d(0,120%,0) rotateX(-100deg) rotateZ(12deg)}to{opacity:1;transform:none}}
.hero-intro,.hero-bottom,.hero-actions,.hero-note,.hero-foot{animation:hero-arrive 1.4s .4s cubic-bezier(.16,1,.3,1) both}
@keyframes hero-arrive{from{opacity:0;transform:translateY(35px)}to{opacity:1;transform:none}}
.scroll-meter{position:fixed;top:0;left:0;height:3px;width:100%;background:var(--signal);transform-origin:left;transform:scaleX(var(--page-progress,0));z-index:100;pointer-events:none}
.motion-switch{position:fixed;right:1rem;bottom:1rem;z-index:40;padding:.55rem .85rem;background:var(--ink);color:var(--bone);border:1px solid var(--muted);font-size:.75rem;letter-spacing:.08em;cursor:pointer}
.motion-switch:hover{background:var(--signal)}
.kinetic-on .section-heading h2{transition:letter-spacing .7s;letter-spacing:-.055em}
.kinetic-on .section-heading:hover h2{letter-spacing:.005em}
.kinetic-on .release,.kinetic-on .video-card,.kinetic-on .bio-photo{perspective:1000px}
.kinetic-on .release-cover{transform:perspective(900px) rotateX(var(--rx,0deg)) rotateY(var(--ry,0deg));transition:transform .6s cubic-bezier(.2,.7,.2,1);transform-style:preserve-3d;position:relative}
.kinetic-on .release-cover::after{content:'';position:absolute;inset:0;pointer-events:none;background:linear-gradient(120deg,transparent 25%,color-mix(in srgb,var(--bone) 25%,transparent) 48%,transparent 70%);opacity:0;transition:opacity .4s;transform:translateZ(15px)}
.kinetic-on .release:hover .release-cover::after{opacity:1}
.kinetic-on .release-cover img{transition:clip-path .8s,transform 1s;clip-path:inset(0 round 0)}
.kinetic-on .release:hover .release-cover img{clip-path:inset(3% round 50%);transform:rotate(12deg) scale(.96)}
.kinetic-on .release-number{transform:translateZ(35px)}
.kinetic-on .video-trigger img,.kinetic-on .bio-photo img{transition:transform 1s cubic-bezier(.2,.7,.2,1)}
.kinetic-on .video-trigger:hover img{transform:scale(1.075) rotate(-1.5deg)}
.kinetic-on .bio-photo:hover img{transform:scale(1.07) rotate(1deg)}
.kinetic-on .cta:not(.mobile-contact){transform:translate(var(--mx,0px),var(--my,0px));transition:transform .35s,background .3s,box-shadow .3s}
.kinetic-on .cta:hover{box-shadow:8px 8px 0 var(--oxblood)}
.kinetic-on .mix-list button{transition:padding .4s,background .4s}
.kinetic-on .mix-list button:hover{padding-left:1rem;background:color-mix(in srgb,var(--signal) 10%,transparent)}
.kinetic-on .audio-toggle[data-state=playing]{border-radius:50%;animation:playing-pulse 2s ease-in-out infinite}
@keyframes playing-pulse{50%{box-shadow:0 0 0 15px color-mix(in srgb,var(--signal) 12%,transparent)}}
.kinetic-on .index{display:inline-block;transition:transform .8s cubic-bezier(.2,.7,.2,1)}
.kinetic-on .section-heading:hover .index{transform:rotate(360deg)}
.kinetic-on .clips-grid article{transition:transform .6s}
.kinetic-on .clips-grid article:hover{transform:translateY(-12px)}
.kinetic-on .site-footer{border-top:1px solid var(--signal)}
.motion-off *{animation:none!important;transition:none!important}
.motion-off .hero-image{transform:none}
.motion-off .letter{opacity:1!important;transform:none!important}
@media(max-width:800px){.motion-switch{bottom:calc(5rem + env(safe-area-inset-bottom));font-size:.7rem}.hero h1 .letter{animation-duration:1s}.hero-image{will-change:auto}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}.hero-image{transform:none!important}.letter{opacity:1!important;transform:none!important}}
